我想添加一個事件處理程序到一個可觀察的集合,每次添加,刪除或更新項目時都會觸發它。如何在ObservableCollection的項目被替換時得到通知
在添加或刪除項目時引發了CollectionChanged事件,但在更換項目時未引發該事件。像這樣的東西
obsList[5] = MyUpdatedCustomObject;
有什麼建議嗎?
我想添加一個事件處理程序到一個可觀察的集合,每次添加,刪除或更新項目時都會觸發它。如何在ObservableCollection的項目被替換時得到通知
在添加或刪除項目時引發了CollectionChanged事件,但在更換項目時未引發該事件。像這樣的東西
obsList[5] = MyUpdatedCustomObject;
有什麼建議嗎?
我想,你不能做到這一點,索引:
public T this[int index] { get; set; }
從Collection<T>
類繼承,這個索引不虛,以改變其行爲!
但實際上,當我在一個非常小的應用程序上測試時,事件會在您的情況下觸發,您有錯誤,請提供一些額外的代碼!
private ObsersvableCollection<Type> _MyCollection = new ObservableCollection<Type>();
_MyCollection.CollectionChanged += new NotifyCollectionChangedEventHandler(_MyCollection_CollectionChanged);
protected void _MyCollection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
switch(e.Action)
{
case NotifyCollectionChangedAction.Add:
//use e.NewItems to get items added.
break;
case NotifyCollectionChangedAction.Remove:
//use e.OldItems to get items removed.
break;
}
}
可能的重複:http://stackoverflow.com/questions/7099050/c-sharp-observablecollection-oncollectionchanged-not-firing-when-item-changes –
它不是一個dublicate那裏的用戶指的是隻改變MyUpdatedCustomObject的一個屬性而我在這裏問的是有點不同 – iltzortz
你怎麼聽ObservableCollections改變了事件? – Default