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