Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 在MVVM+;中通知用户对象已更改的正确方式是什么;实体框架?_Entity Framework_Mvvm - Fatal编程技术网

Entity framework 在MVVM+;中通知用户对象已更改的正确方式是什么;实体框架?

Entity framework 在MVVM+;中通知用户对象已更改的正确方式是什么;实体框架?,entity-framework,mvvm,Entity Framework,Mvvm,例如,如果您希望在每个文档旁边都有一个视觉提示,如VisualStudio中的红点,以及挂起的更改,那么在模型是实体框架模型的情况下,使用MVVM实现它的通常方法是什么?您是否只在视图模型级别保留IsDirty标志?我猜您不想一直在db上下文中调用DetectChanges来查看实体是否已更新。如果您的模型对象实现了INotifyPropertyChange,则始终可以点击PropertyChanged事件。假设您检查了设置为相同值的属性,例如: public string Name {

例如,如果您希望在每个文档旁边都有一个视觉提示,如VisualStudio中的红点,以及挂起的更改,那么在模型是实体框架模型的情况下,使用MVVM实现它的通常方法是什么?您是否只在视图模型级别保留IsDirty标志?我猜您不想一直在db上下文中调用DetectChanges来查看实体是否已更新。

如果您的模型对象实现了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;
    }
}