我的问题是:
我有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。
有人可以解释我在哪里吗?
谢谢!
答案 0 :(得分:2)
绑定不会绑定到源集合而是视图。集合视图还具有Count
属性,该属性返回(已过滤)视图中的项目数,而不是原始集合中的项目数。
(您可以使用调试器来查看View
的CollectionViewSource
属性通常是一个对象,它是CollectionView
或其子类之一的实例。绑定将隐式绑定到View.Count
)
要绑定到原始计数,请使用路径SourceCollection.Count
。