Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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
.net MVVM指示如何确定哪些记录已更改_.net_Wpf_Wcf_Mvvm_Mvvm Light - Fatal编程技术网

.net MVVM指示如何确定哪些记录已更改

.net MVVM指示如何确定哪些记录已更改,.net,wpf,wcf,mvvm,mvvm-light,.net,Wpf,Wcf,Mvvm,Mvvm Light,从MVVM的角度来看,如果我将一个datagrid绑定到一个Obersable集合(2路),当我在编辑了几条记录并添加了新记录之后最终点击update时,我如何确定哪些记录被添加了新记录,哪些记录被编辑了。(我猜主键id=0的仍可以标记为新,但如何检查哪些已编辑) 是否有内置的属性?或者我创建了一个属性来标记这些记录 谢谢您可以附加到ObservaleCollection上的CollectionChanged事件以了解这一点 private void MyCollectionChanged(ob

从MVVM的角度来看,如果我将一个datagrid绑定到一个Obersable集合(2路),当我在编辑了几条记录并添加了新记录之后最终点击update时,我如何确定哪些记录被添加了新记录,哪些记录被编辑了。(我猜主键id=0的仍可以标记为新,但如何检查哪些已编辑)

是否有内置的属性?或者我创建了一个属性来标记这些记录


谢谢

您可以附加到
ObservaleCollection
上的
CollectionChanged
事件以了解这一点

private void MyCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    if(e.Action == NotifyCollectionChangedAction.Add)
    { 
         //use e.NewItems for added items
    }
    else if(e.Action == otifyCollectionChangedAction.Remove)
    {
         //use e.OldItems for removed items
    }
    ...
 }
至于找出哪些已被编辑,这不会作用于集合本身,而是作用于集合中的实体。一个好主意是用一个
ViewModel
/
Model
表示每一行,并实现
INotifyPropertyChanged
或具有可供检查的
IsDirty
属性

因此,当一个项目被添加到某个事件时,该事件将提醒您任何更改。(您可以在上面的
CollectionChanged
处理程序或为您创建模型的某些方法中执行此操作)


您可以附加到
ObservableCollection
上的
CollectionChanged
事件,以了解这一点

private void MyCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    if(e.Action == NotifyCollectionChangedAction.Add)
    { 
         //use e.NewItems for added items
    }
    else if(e.Action == otifyCollectionChangedAction.Remove)
    {
         //use e.OldItems for removed items
    }
    ...
 }
至于找出哪些已被编辑,这不会作用于集合本身,而是作用于集合中的实体。一个好主意是用一个
ViewModel
/
Model
表示每一行,并实现
INotifyPropertyChanged
或具有可供检查的
IsDirty
属性

因此,当一个项目被添加到某个事件时,该事件将提醒您任何更改。(您可以在上面的
CollectionChanged
处理程序或为您创建模型的某些方法中执行此操作)