我在使用反编译器查看 ObservableCollection<T>
时发现了一些陌生的 OnPropertyChanged
代码,这让我感到好奇。
public class ObservableCollection<T> : Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged
{
private const string IndexerName = "Item[]";
protected override void ClearItems()
{
...
base.OnPropertyChanged("Count");
base.OnPropertyChanged("Item[]");
...
}
}
OnPropertyChanged("Item[]")
的调用是什么意思?如果我自己写代码,这个调用有什么帮助呢?
它一定比标准的OnPropertyChanged
调用做了些不同的事情,因为'Item'不是对象上的属性,而 '[]
'肯定也不是任何一个属性名称的一部分。