我正在尝试使用 ItemsControl
中的 DataTemplate
显示一组数据,并将 ItemsPanel
设置为大小统一的网格3 x 3。 ItemsControl
的 ItemsSource
设置为绑定(bind)到 CollectionViewSource
,它根据搜索词过滤源集合。这一切都很好。
我要绑定(bind)的列表是任意大小的,但我只想显示 9 个结果,但我终究无法弄清楚如何:
a) 限制 CollectionViewSource
输出前 9 个项目
b) 将 UniformPanel
限制为仅 3 x 3 并且永远不要创建新行
c) 限制 ItemsControl
一次只允许创建 9 个数据模板。
我真的很抓狂,因为我确定这是一个常见的数据绑定(bind)场景,但我在网上找不到任何关于它的信息。
最佳答案
我能想到的两种解决方案:
如果您使用的是 View 模型,请将逻辑放在那里以创建一个您可以绑定(bind)到的属性,该属性只有 9 个元素。确保它经过单元测试,以确保不会有超过 9 个元素混入集合中。
或者,您可以使用 converter绑定(bind)项目源以将完整列表转换为前 9 项的简化列表时。
关于c# - WPF 如何设置 CollectionViewSource 的最大结果量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1914786/