将组合框绑定到 CollectionView 会显示过滤掉的元素。为什么?
Wpf 绑定对于那些熟悉它的人来说很有趣,对于新手来说则是噩梦。 如果我将组合框绑定到注释掉的 CollectionView,则控件将显示所有元素,包括那些被过滤器排除的元素。如果我将相同的组合框绑定到 ICollectionView,它只显示过滤后的元素,那就没问题了。
//public CollectionView MyCapitoliList { get; private set; }
public ICollectionView MyCapitoliList { get; private set; }
这是我用来创建 CollectionView 和 ICollectionView 的代码,
MyCapitoliList = CollectionViewSource.GetDefaultView(listaCapitoli);
//MyCapitoliList = new CollectionView(listaCapitoli);
MyCapitoliList.Filter = new Predicate<object>(isCapitoloMaster);
我检查了 CollectionView 从 C# 代码打印其所有元素,它只包含过滤后的元素,因此 CollectionView 是好的。 如果我将其绑定到组合框,为什么会得到所有未过滤的元素?
谢谢 菲利波
Wpf binding is funny for those who know it well and it is nightmare for newbie.
If I bind a combobox to the commented out CollectionView the control shows all the elements, including those excluded by the filter. If I bind the same combobox to a ICollectionView it displays only the filtered elements and it is Ok.
//public CollectionView MyCapitoliList { get; private set; }
public ICollectionView MyCapitoliList { get; private set; }
Here is the code I use to create the CollectionView and ICollectionView
MyCapitoliList = CollectionViewSource.GetDefaultView(listaCapitoli);
//MyCapitoliList = new CollectionView(listaCapitoli);
MyCapitoliList.Filter = new Predicate<object>(isCapitoloMaster);
I checked the CollectionView printing all its elements from C# code and it contains only the filtered elements, so the CollectionView is Ok.
Why do I get all the unfiltered elements if I bind it to a combobox ?
Thanks
Filippo
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
MSDN 说关于
CollectionView
类...它还进一步补充...
MSDN says about
CollectionView
class...It further adds ...