ObservableCollection引发“ Item []”的PropertyChange的目的是什么?
如果我有一个实现INotifyCollectionChanged的类,这是我应该做的事情吗?
WPF控件是否以某种方式使用此“ Item []”的PropertyChange?
ObservableCollection同时实现INotifyCollectionChanged和INotifyPropertyChanged。
INotifyPropertyChanged用于表示的属性ObservableCollection已更改,例如其元素的数量("Count")或可通过集合的索引器("Item[]")访问的元素。另外,ObservableCollection实现INotifyCollectionChanged指示哪个元素已正确更改以及如何更改的工具。
看看Mono的实现,ObservableCollection看看它到底ObservableCollection能做什么。例如,这是InsertItem方法:
protected override void InsertItem (int index, T item)
{
CheckReentrancy ();
base.InsertItem (index, item);
OnCollectionChanged (new NotifyCollectionChangedEventArgs (
NotifyCollectionChangedAction.Add, item, index));
OnPropertyChanged (new PropertyChangedEventArgs ("Count"));
OnPropertyChanged (new PropertyChangedEventArgs ("Item[]"));
}
Run Code Online (Sandbox Code Playgroud)
如果要实现自己的ObservableCollection类集合类,则似乎是实现INotifyCollectionChanged和的正确方法INotifyPropertyChanged。