WPF优化:从StackPanel插入/删除子项

时间:2012-06-20 19:19:34

标签: wpf user-controls stackpanel

我经常在StackPanel中插入/删除20-30个非常复杂的UserControls。 已创建并缓存所有UserControl以供重用。在重新使用控制之前,我清理旧的父母并记住控制。

StackPanel.Children.RemoveStackPanel.Children.Add等操作会在我的方案中花费大量时间。

如何优化这些操作?例如。一次插入StackPanel中的所有控件或在收集修改期间冻结通知,否则?

谁知道有用的文章重新划分wpf优化(MSDN除外)?

2 个答案:

答案 0 :(得分:2)

您可以覆盖OnCollectionChanged()的{​​{1}}事件处理程序,以便一起禁用事件处理,或者将事件排队以便以后处理。

在此处查看帖子,答案可以为您提供帮助 - https://stackoverflow.com/a/5491534/903056

答案 1 :(得分:1)

我假设你需要研究虚拟化UI或数据加载(如果有的话)策略。

在这种特定情况下,使用像VirtualizingStackPanel这样的控件来使UI绘制更少的东西。您可以在this博客上获得更多信息。