我有一个自定义列表,如下所示:
public class MyCollection : ICollection<Model>,
ISupportIncrementalLoading,
INotifyCollectionChanged,
INotifyPropertyChanged
每当我想查看要更新时,它都会引发CollectionChanged
事件,例如:
public void Clear()
{
InternalData.Clear();
if (CollectionChanged != null)
{
CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
}
我有一个GridView
,其属性ItemsSource
绑定到我的自定义集合。但是,虽然我的自定义集合中有数据(由于我的自定义IEnumerator<Model> GetEnumerator()
,我可以使用动态视图字段浏览此数据),但事件CollectionChanged
永远不会被触发,因为它总是{{ 1}}。就像null
没有订阅该事件一样。我不知道如何强制GridView收听此事件。
我在这里把一个工作样本放在pastebin上:http://pastebin.com/01zS6yjP
当GridView
绑定到集合时,CollectionChanged
事件始终为null
事件。
答案 0 :(得分:0)
GridView
不响应CollectionChanged
事件,而是响应VectorChanged
事件(从ObservableVector
实施)。