я уже связан мой DataGrid к наблюдаемому коллекции моего элемента ViewModel, а затем я связал его с событием 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);
я редактирую мой DataGrid в мой вю, я хочу, чтобы иметь возможность добавлять/удалять, обновлять содержание и получать уведомления, когда каждая из этих операций делается: я так создал эту функцию:
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 Следите за моими изменениями и сможете вносить все изменения в базу данных.
Проблема в том, что когда я добавляю или удаляю строки в своем datagrid, я получаю уведомление, а списки заполняются элементами, но когда я обновляю содержимое существующей строки, я даже не получаю уведомление о коллекция меняется !!! поэтому я не могу отслеживать мои изменения в существующих элементах!
Любая идея? спасибо большое :) :)
Yeaaaaaaaaaaaaaay :) ТНХ – Mohtaa