绑定到CollectionViewSource问题

时间:2011-07-17 06:58:09

标签: wpf data-binding collectionviewsource

我的问题是:

我有2个ListBox:

一个绑定到名为Photos类型的照片的集合,另一个绑定到绑定到相同照片集合的CollectionViewSource。

listBox1 - >照片(这里listBox1绑定到照片的默认CollectionView,当然不是直接照片。)

ListBox2 - > cvs - >照片

两个集合(默认值和我的CVS)都有一个过滤器,可以将他们显示的项目从8个项目减少到5个项目。

现在我有2个标签。一个绑定到photos对象的Count属性,另一个绑定到Count属性,其中source是cvs(我的CollectionViewSource)对象。

第一个标签显示数字8,正如我所看到的那样,这是因为即使我正在过滤它的默认CollectionViewSource,照片的数量也会保持为8。

第二个标签显示数字5。

我学到的关于绑定到cvs的内容是WPF从cvs解包源对象,而Path = Count与底层对象相关,这是照片,这里的数字也应该是8。

有人可以解释我在哪里吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

绑定不会绑定到源集合而是视图。集合视图还具有Count属性,该属性返回(已过滤)视图中的项目数,而不是原始集合中的项目数。

(您可以使用调试器来查看ViewCollectionViewSource属性通常是一个对象,它是CollectionView或其子类之一的实例。绑定将隐式绑定到View.Count

要绑定到原始计数,请使用路径SourceCollection.Count