我经常将 20-30 个非常复杂的 UserControl 插入/删除到StackPanel
. 所有用户控件都已创建并缓存以供重用。在重用控制之前,我清理旧的父级并记住控制。
像这样的操作在我的场景StackPanel.Children.Remove
中StackPanel.Children.Add
需要很多时间。
如何优化这些操作?例如,一次插入所有控件StackPanel
或在集合修改期间冻结通知或其他?
请问谁知道有用的文章重新分级wpf优化(除了MSDN)?
我经常将 20-30 个非常复杂的 UserControl 插入/删除到StackPanel
. 所有用户控件都已创建并缓存以供重用。在重用控制之前,我清理旧的父级并记住控制。
像这样的操作在我的场景StackPanel.Children.Remove
中StackPanel.Children.Add
需要很多时间。
如何优化这些操作?例如,一次插入所有控件StackPanel
或在集合修改期间冻结通知或其他?
请问谁知道有用的文章重新分级wpf优化(除了MSDN)?
您可以覆盖您的OnCollectionChanged()
事件处理程序ObservableCollection
,以一起禁用事件处理,或者将事件排队以供稍后处理。
请参阅此处的帖子,答案可以帮助您 - https://stackoverflow.com/a/5491534/903056
我假设您需要研究虚拟化 UI 或数据加载(如果有)策略。
在这种特定情况下,使用控件VirtualizingStackPanel
来减少 UI 绘制的内容。您可以在此博客上获得更多信息。