我已经绑定我的数据网格视图模型我要素的观察的集合,然后我把它连接到一个NotifyCollectionChangedEventHandler事件:的ObservableCollection更新元素的内容:没有得到通知
obsListOfClients = new ObservableCollection<ClientVM>();
foreach (var c in contexte.listOfClients)
{
ClientVM cvm = new ClientVM(c);
obsListOfClients.Add(cvm);
}
obsListOfClients.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(collectionOfClientssChanged);
我编辑我在数据网格我的VUE,我希望能够添加/删除,更新内容,当这些操作完成后得到通知:我这样创造了这个功能:
void collectionOfClientssChanged(object sender, NotifyCollectionChangedEventArgs e)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
//Ajouter dans la base de données :
for(int i = 0; i<e.NewItems.Count;i++)
{
ClientVM item = e.NewItems[i] as ClientVM;
contexte.ListOfClientsToAdd.Add(item.Client);
}
break;
case NotifyCollectionChangedAction.Remove:
for(int i = 0; i < e.OldItems.Count; i++)
{
ClientVM item = e.OldItems[i] as ClientVM;
contexte.ListOfClientsToRemove.Add(item.Client);
}
break;
case NotifyCollectionChangedAction.Replace:
for(int i = 0; i < e.OldItems.Count; i++)
{
ClientVM item = e.OldItems[i] as ClientVM;
contexte.ListOfClientsToUpdate.Add(item.Client);
}
break;
}
}
然后我用我的三个列表(ListOfClientsToUpdate, ListOfClientsToRemove,ListOfClientsToAdd)t o记录我的更改并能够在数据库中一次推送所有修改。
问题是,当我添加或删除我的数据网格中的行时,我得到的通知和列表充满了元素,但是当我更新现有行的内容时,我甚至没有收到关于通知收集改变!所以我无法保留对现有元素的修改痕迹!
有什么想法?非常感谢:) :)
Yeaaaaaaaaaaaaaay :) THX – Mohtaa 2013-02-27 17:48:17