例如,如果您想在每个带有待处理更改的文档旁边有一个视觉提示,如 Visual Studio 中的红点,那么在模型是实体框架模型的情况下,使用 MVVM 实现它的常用方法是什么?你只是在视图模型级别保留一个 IsDirty 标志吗?我猜你不想在你的数据库上下文中继续调用 DetectChanges 来查看实体是否已更新。
问问题
106 次
1 回答
0
如果您的模型对象实现了 INotifyPropertyChange,您可以随时点击 PropertyChanged 事件。假设您检查设置为相同值的属性,例如:
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;
}
}
于 2012-11-20T23:00:15.263 回答