Entity framework 在MVVM+;中通知用户对象已更改的正确方式是什么;实体框架?
例如,如果您希望在每个文档旁边都有一个视觉提示,如VisualStudio中的红点,以及挂起的更改,那么在模型是实体框架模型的情况下,使用MVVM实现它的通常方法是什么?您是否只在视图模型级别保留IsDirty标志?我猜您不想一直在db上下文中调用DetectChanges来查看实体是否已更新。如果您的模型对象实现了INotifyPropertyChange,则始终可以点击PropertyChanged事件。假设您检查了设置为相同值的属性,例如:Entity framework 在MVVM+;中通知用户对象已更改的正确方式是什么;实体框架?,entity-framework,mvvm,Entity Framework,Mvvm,例如,如果您希望在每个文档旁边都有一个视觉提示,如VisualStudio中的红点,以及挂起的更改,那么在模型是实体框架模型的情况下,使用MVVM实现它的通常方法是什么?您是否只在视图模型级别保留IsDirty标志?我猜您不想一直在db上下文中调用DetectChanges来查看实体是否已更新。如果您的模型对象实现了INotifyPropertyChange,则始终可以点击PropertyChanged事件。假设您检查了设置为相同值的属性,例如: public string Name {
public string Name
{
get { return _name; }
set
{
if(_name == value) return;
_name = value;
RaisePropertyChanged("Name");
}
}
您可以观察模型上的任何属性是否已从ViewModel更改,并通过ViewModel上的标志显示/隐藏该图标,该标志大致如下:
public class TreeItemViewModel
{
public TreeViewModel(TreeItem model)
{
model.PropertyChanged += OnTreeItemModified();
}
private void OnTreeItemModified(object sender, EventArgs e)
{
DisplayIcon = true;
}
}