【发布时间】:2015-08-13 10:04:52
【问题描述】:
是否存在 WPF 虚拟化替代方案,其中生成所有项目的容器(因此评估绑定),但在不可见时折叠(因此没有渲染/布局开销)?
虚拟化意味着不为不在视图中的项目生成容器。但是,我需要一些额外的功能,这些功能由项目容器中的一些(附加的)依赖属性触发。我分析了禁用虚拟化的应用程序,发现主要瓶颈是布局传递和渲染。打开虚拟化后,性能显着提高,但正如预期的那样,绑定不会针对不在视图中的项目进行更新。
我的想法是有一个替代 ScrollViewer 自动折叠所有不在视图中的项目(并在视图中使它们再次可见),但仍将拇指显示在预期位置(并具有预期高度)。
有人知道现有的解决方案吗?
【问题讨论】:
-
您需要哪些与依赖属性相关的功能?您拥有视图模型中的所有项目,您不能使用那里的对象来获得您想要的吗?
-
我想在一些 GridView 组件中拥有该功能。它自动管理项目的分组和排序(不涉及 ViewModel),但是如果 ViewModel 中的某些属性发生更改,它不会更新分组/排序。我可以通过附加属性检测更改 - 但是,这仅在创建相应的单元格时才有效。
标签: wpf virtualization scrollviewer