【发布时间】:2009-06-24 16:32:03
【问题描述】:
我正在使用 WPF 和 C#。
我有问题。我需要在可滚动区域中创建很多可绑定的模板化控件(它们都是不同的类型)。例如 1000 个文本框、1000 个下拉列表和 1000 个复选框。
问题是,当它们全部被创建时,它的工作速度非常慢。
问题是 - 是否有可能同时拥有这么多控件而没有滞后,我应该朝哪个方向寻找解决方案?我想保留使用模板、数据绑定和鼠标点击等简单事件处理的能力。
附:我尝试了很多东西(仅渲染几何图形、不同的基类等等),但目前似乎对我有用的唯一方法(我还没有尝试过)是只创建那些适合当前视口的控件和更新此滚动控件列表。
P.P.S 我知道 3.5 SP1 中有一种机制在 ListBox 中使用,当列表项在滚动期间被重用时,但这种方法不能在这里使用,因为所有这些项目都是不同的类型。
非常感谢。
【问题讨论】:
标签: c# wpf-controls scroll high-load