.net MVVM指示如何确定哪些记录已更改
从MVVM的角度来看,如果我将一个datagrid绑定到一个Obersable集合(2路),当我在编辑了几条记录并添加了新记录之后最终点击update时,我如何确定哪些记录被添加了新记录,哪些记录被编辑了。(我猜主键id=0的仍可以标记为新,但如何检查哪些已编辑) 是否有内置的属性?或者我创建了一个属性来标记这些记录.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
谢谢您可以附加到
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
处理程序或为您创建模型的某些方法中执行此操作)