c# - GridView 不订阅 CollectionChanged 事件

标签 c# xaml gridview mvvm windows-runtime

我有一个自定义列表,如下所示:

public class MyCollection :   ICollection<Model>, 
                              ISupportIncrementalLoading, 
                              INotifyCollectionChanged, 
                              INotifyPropertyChanged

它引发了CollectionChanged每当我想查看要更新的事件时,例如:
public void Clear()
{
     InternalData.Clear();
     if (CollectionChanged != null)
     {
          CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
     }
}

我有一个 GridView谁的属性(property)ItemsSource绑定(bind)到我的自定义集合。但是,虽然我的自定义集合中确实有数据(并且由于我的自定义 IEnumerator<Model> GetEnumerator(),我可以使用动态 View 字段浏览这些数据),但事件 CollectionChanged永远不会被解雇,因为它总是 null .就像 GridView不订阅该事件。我不知道我能做些什么来强制 GridView 监听这个事件。

我在 pastebin 上放了一个工作示例:http://pastebin.com/01zS6yjPCollectionChanged事件总是 null GridView 时的事件绑定(bind)到集合。

最佳答案

GridView不回复 CollectionChanged事件,但到 VectorChanged事件(从 ObservableVector 实现)。

关于c# - GridView 不订阅 CollectionChanged 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18534770/

相关文章:

c# - C# 中的 WPF 类型初始化异常

html - 如何将自定义 HTML 放入 Yii2 GridView header 中?

c# - 为什么在 Asp :GridView? 中有不需要的重复列和额外列

c# - 悬停并单击时更改标签的颜色

c# - 由于一个或多个外键属性不可为空,因此无法更改关系。 (2)

c# - 使用正则表达式将目标 ="_blank"列入白名单

android - 我想将我的 GridView 保存在一个 ImageView 中

c# - Windows XP 上的 WPF 视频撕裂

c# - XAML WinRT - 自定义样式的工厂模式

.net - WPF - 编译错误 : Tags of type 'PropertyArrayStart' are not supported in template sections