Как получить изменения в ObservableCollection - PullRequest
11 голосов
/ 15 мая 2011
public ObservableCollection<IndividualEntityCsidClidDetail> IncludedMembers { get; set; }

Допустим, у меня есть ссылка на IncludedMembers Я хочу, чтобы событие происходило, когда элементы коллекции добавляются / удаляются / редактируются.

Ответы [ 3 ]

23 голосов
/ 15 мая 2011

обрабатывает событие CollectionChanged

// регистрирует событие, чтобы при каждом изменении в коллекции CollectionChangedMethod вызывался метод

    yourCollection.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler 
(CollectionChangedMethod);

Создать методкак это

private void CollectionChangedMethod(object sender, NotifyCollectionChangedEventArgs e)
{
       //different kind of changes that may have occurred in collection
       if(e.Action == NotifyCollectionChangedAction.Add)
        {
            //your code
        }
        if (e.Action == NotifyCollectionChangedAction.Replace)
        {
            //your code
        }
        if (e.Action == NotifyCollectionChangedAction.Remove)
        {
            //your code
        }
        if (e.Action == NotifyCollectionChangedAction.Move)
        {
            //your code
        }
}
3 голосов
/ 15 мая 2011

Просто зарегистрируйтесь на событие коллекции CollectionChanged.Он будет вызывать события, когда вы добавляете, удаляете элементы или иным образом изменяете содержимое коллекции.

Если вы хотите получать события при изменении свойств элементов в коллекции, вам необходимопункты IObservable сначала, затем Subscribe() для отдельных объектов.

0 голосов
/ 15 мая 2011

Для этого и существуют наблюдаемые коллекции.

Просто привяжите к коллекции, и вы отсортированы!

...