WPF如何从CollectionViewSource设置最大结果数

Guy*_*Guy 5 c# data-binding wpf itemscontrol collectionviewsource

我想显示一组使用数据的DataTemplate在ItemsControl与ItemsPanel集作为大小3×3的均匀网格的ItemsSource所述的ItemsControl被设置为结合至CollectionViewSource其过滤基于搜索项的源集合。这一切都很好。

我绑定到的列表是任意大小的,但是我只希望显示9个结果,但是我一生都无法解决如何:
a)限制 CollectionViewSource输出前9个项目
b)将限制UniformPanel为仅3 x 3,并且从不创建新行
c)将限制ItemsControl为仅一次创建9个数据模板。

我真的挠头,因为我确定这是一个常见的数据绑定方案,但是我在网上找不到任何有关它的信息。

Jam*_*Hay 4

我能想到的两个解决方案:

如果您使用的是视图模型,请将逻辑放在那里以创建一个可以绑定到只有 9 个元素的属性。确保对其进行单元测试,以确保集合中不会出现超过 9 个元素。

或者,您可以在绑定项目源时使用转换器将完整列表转换为前 9 个的缩减列表。