我已经为我的 WPF 应用程序设置了所有模型,并首先使用实体框架 ctp5 代码,这是一个示例模型类:
public class Task
{
public int ID { get; set; }
public int Index { get; set; }
public string Content { get; set; }
public int Indentation { get; set; }
public DateTime Start { get; set; }
public decimal Effort { get; set; }
public decimal CompletedEffort { get; set; }
public decimal Cost { get; set; }
}
构建我的视图模型的推荐方法是什么?我的视图模型将实现 INotifyPropertyChanged,我不希望模型类具有任何特定于 UI 的代码 - 这样它们就可以在其他应用程序中轻松重用。我应该将所有模型属性设为虚拟然后在视图模型中覆盖它们吗?(似乎有很多不必要的编码......) EF 代码首先会与这种类型的格式搭配得很好吗?
编辑 这是一个有点类似的问题在 MVVM 中 ViewModel 或 Model 是否应该实现 INotifyPropertyChanged? 但是,唯一的解决方案似乎是将我认为是 UI 逻辑的内容添加到模型中。也许我可以向模型添加某种委托并从视图模型中挂钩,这将反过来使用 INotifyPropertyChanged... 像这样的东西?
public class Task
{
public delegate void HandleChange(string propertyName);
public HandleChange ChangeHandler;
public int ID
{
get
{
return ID;
}
set
{
if(ID != value)
{
ID = value;
ChangeHandler("ID");
}
}
}
...