【问题标题】:VirtualizingWrapPanel with groupping使用分组虚拟化 WrapPanel
【发布时间】:2014-08-03 23:18:49
【问题描述】:

我需要将ListBox 中的许多元素与WrapPanel 呈现为ItemsPanel,并使用分组项和虚拟化。

一切都必须看起来像 Windows 8 主页(带有磁贴),所以:

  1. 组在水平方向上并排放置
  2. 组中的项目位于 WrapPanel 中,由于项目数量很大(大约 10.000 个项目),需要对其进行虚拟化
  3. 项目被垂直包装(占据所有现有的垂直位置,而不是向右走,Orientation = Orientation.Horizontal)所以没有显示VerticalScrollBar,整个ListBox 只显示1 个HorizontalScrollBar

内置WrapPanel 不附带虚拟化。

我已经尝试了许多免费的“VirtualizingWrapPanels”,但没有一个适用于分组。事实上,即使没有分组,它们都不能很好地工作,但让我们跳过它。

您知道获得这些功能的任何解决方法吗?

【问题讨论】:

    标签: c# wpf performance user-interface virtualization


    【解决方案1】:

    对于您的问题,我有比解决方法更好的方法。我可以为您提供有关如何实现自己的VirtualizingPanel 的清晰解释和说明。但是,我应该警告您,尽管可能,但这绝非易事,需要一些时间。我已经使用相同的信息源成功地实现了我自己的VirtualizingAnimatedPanel,所以肯定可以做到。

    当然,这个话题太大了,这里无法涵盖,因此有关虚拟化以及如何实现它的完整详细信息,请阅读非常有用的 WPF Control Development Unleashed 一书的第 8 章。幸运的是,我找到了这本书的在线副本,因此您现在可以阅读:

    WPF Control Development Unleashed

    【讨论】:

    • 这是一本很棒的书,我现在正在阅读,非常感谢。尽管我已经阅读了第 8 章并且对此有自己的了解,但我仍然不知道如何将分组和虚拟化结合起来:/
    • 只需将您的数据类型类重组为分层的,例如。使集合中的每个项目都代表一个有孩子的组。
    • 我找到了那个pdf版本,但是这合法吗?
    • 虚拟化包裹面板也可以与分组一起使用吗?那太棒了:)
    • @user2475096,我怀疑您找到的 PDF 是合法的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多