为什么INotifyCollectionChanged不是通用的?

本文关键字:INotifyCollectionChanged 为什么 | 更新日期: 2023-09-27 18:13:10

如果我创建一个新的ObservableCollection<T>和一个CollectionChanged侦听器,如下所示:

var c = new ObservableCollection<MyType>();
c.CollectionChanged += new NotifyCollectionChangedEventHandler(h);
...
void h(object sender, NotifyCollectionChangedEventArgs e) 
{
    IList newItems = e.NewItems;
    // non generic IList!  :(
}

为什么不是e.NewItemsIList<MyType> ?

为什么INotifyCollectionChanged不是通用的?

ObservableCollection是为了支持WPF这样的平台上的数据绑定场景而设计的,在这些平台上,数据绑定控件并不关心它们绑定到的集合的类型。让通知通用化只会让编写控件变得更加困难,而不会带来任何好处。

大概是为了它可以用于非泛型集合以及ObservableCollection<T>

相关文章:
  • 没有找到相关文章