我正在编写一些代码,用于将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}


尽管代码是相同的,但这将简化您的开发工作。

10-08 12:57