【发布时间】:2011-09-07 01:26:49
【问题描述】:
我正在尝试在ItemsControl 中使用DataTemplate 显示一组数据,其中ItemsPanel 设置为大小为3 x 3 的统一网格。ItemsSource 的ItemsControl 已设置绑定到基于搜索词过滤源集合的CollectionViewSource。这一切都很好。
我要绑定的列表是任意大小的,但我只想显示 9 个结果,但我终其一生都无法弄清楚如何:
a) 限制 CollectionViewSource 输出前 9 项
b) 将 UniformPanel 限制为仅 3 x 3,并且永远不要创建新行
c) 将ItemsControl 限制为一次只允许创建 9 个数据模板。
我真的很摸不着头脑,因为我确信这是一种常见的数据绑定场景,但我在网上找不到任何关于它的信息。
【问题讨论】:
-
基于 cwap 的回答,我已经完全废弃了 CollectionViewSource,只是在视图模型中创建了一个主列表和一个过滤列表,后者在搜索词更改时更新。使用转换器是一个好主意,并且可能比在 VM 中包含最大输出数量更“纯”MVVM(为什么我将其标记为答案),但现在我很高兴在 VM 中这样做。为大家的回复干杯。
标签: c# wpf data-binding itemscontrol collectionviewsource