代码之家  ›  专栏  ›  技术社区  ›  Guy

WPF如何设置CollectionViewSource的最大结果量

  •  4
  • Guy  · 技术社区  · 16 年前

    我正在尝试使用 DataTemplate 在一个 ItemsControl ItemsPanel 设置为尺寸为3 x 3的统一网格。这个 ItemsSource 项目控制 设置为绑定到 CollectionViewSource 它基于搜索词筛选源集合。这一切都很好。

    我要绑定到的列表的大小是任意的,但我只希望显示9个结果,但我无法终身解决如何:
    a)限制 集合视图源 输出前9项
    b)限制 UniformPanel 仅3 x 3,从不创建新行
    c)限制 项目控制 一次只允许创建9个数据模板。

    我真的抓狂了,因为我确信这是一个常见的数据绑定场景,但是我在网上找不到任何关于它的信息。

    3 回复  |  直到 14 年前
        1
  •  4
  •   James Hay    16 年前

    我可以想到两种解决方案:

    如果您使用的是视图模型,那么将逻辑放在其中以创建一个属性,您可以绑定到只有9个元素的属性。确保它经过了单元测试,以确保超过9个元素不会潜入收藏中。

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

        2
  •  2
  •   cwap    16 年前

    这只是在XAML中你不能做的事情之一。

    您可以创建一个“CollectionViewSourceView”(:p),它将在每次更新CollectionViewSource时更新,以仅输出前9项。不过,这将进入代码隐藏(或者更好的是,viewModel)。

        3
  •  1
  •   pete the pagan-gerbil    16 年前

    我本来想和James Hay说的一样(使用转换器),但我还想补充一点,您可以在XAML中数据绑定一个converterParameter来动态地指定返回了多少项。