我正在编写一些代码,用于将Silverlight视图绑定到MVP模式中的演示者。在这种特殊情况下,这是一个很长的练习,要一遍又一遍地执行:
模型:
public bool MyBoolean
{
get { return _myThingy.MyBoolean; }
set { _myThingy.MyBoolean = value; }
}
主持人:
public bool MyBoolean
{
get { return _model.MyBoolean; }
set { _model.MyBoolean = value; }
}
显然,在此示例中可以消除演示者,但是在这种情况下,有一些事情值得兼得,因为并非每个属性都像这样,并且我们的编码标准要求将Model,View和Presenter用于每个窗口/页面/用户控件。
我真正的问题是,我真的很想能够做这样的事情:
模型:
public bool MyBoolean -> _myThingy.MyBoolean;
主持人:
public bool MyBoolean -> _model.MyBoolean;
其中
->
是“绑定属性运算符”或某些类似的名称-本质上是第一行代码的语法糖。已经有这样的东西了吗?如果没有,是否有一种更清洁的方式来做我正在做的事情? 最佳答案
已经有这样的东西了吗?如果没有,是否有一种更清洁的方式来做我正在做的事情?
不。就代码而言,您拥有的可能是最佳选择。 C#在任何功能中均未提供此类功能。
但是,您可以使用工具来简化此过程。例如,Resharper模板可以轻松快速地创建其中之一。第二个可以变成一个模板,只需要输入类似的内容(假设“ ptprop”作为关键字):
ptprop{TAB}bool{TAB}MyBoolean{Tab}_model{Enter}
尽管代码是相同的,但这将简化您的开发工作。