我在我的wpf MVVM(基于Prism的)应用程序中遇到了一些设计问题,很乐意得到你的建议.
我的模型非常简单:
我的模型非常简单:
public class Customer { public string FirstName {get;set;} public string LastName {get;set;} }
如您所见,我的Model类没有任何INotifyPropertyChnaged支持.
我还在CustomerDetails屏幕上有viewmodel,它支持INotifyPropertyChanged.
public class CustomerDetailsviewmodel:INotifyPropertyChanged /*Or NotificationObject*/ { /*INotifyPropertyChanged event */ private Customer item; public Customer Item { get{return item;} set { item=value; //Raise PropertyChanged //Set IsDirty to true } } }
在我看来,我正在使用绑定到Item.FirstName和我正在更新的viewmodel.
我的问题是 – 因为只有FirstName属性通过View更新,而Model本身不支持INotifyPropertyChanged,因此Item setter没有被调用,并且IsDirty仍然等于false(因此不会更新IsDirty通知)用户界面).
我知道我可以在模型中支持INotifyPropertyChanged,然后在视图模型中注册到Item.PropertyChanged事件,并实际将IsDirty设置为true,但是 –
由于我也使用CodeFirst,我的Model类在我的ServerSide和客户端之间共享(不使用Add Service Reference),我不想将INotifyPreoprtyChanged内容添加到我的服务器端.
我正在考虑创建新项目,它将使用T4模板逐个复制我的所有实体(作为客户)并为每个模型添加INotifyPropertyChanged支持.
那是否合理与否?还有其他建议吗?
谢谢!