为什么INotifyCollectionChanged不通用?

时间:2011-11-03 15:19:39

标签: c# .net wpf

如果我按如下方式创建新的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.NewItems不是IList<MyType>

2 个答案:

答案 0 :(得分:4)

ObservableCollection旨在支持WPF等平台中的数据绑定方案,其中数据绑定控件不关心它们绑定的集合的类型。使通知通用只会使编写控件变得更加困难而不会带来任何好处。

答案 1 :(得分:1)

据推测,它可以用于非泛型集合以及ObservableCollection<T>