我正在使用 WPF 数据绑定编写一个具有相当大表单的 WPF 应用程序。
我注意到当我“放开”表单元素时,它们的存活时间比我想要的要长得多,这意味着它们会继续从视图中获取更新,导致我的应用程序明显变慢。为了防止这种情况发生,我递归遍历文档并BindingOperations.ClearAllBindings()
在 WPF 树的一部分被释放时调用每个元素。
现在我遇到了以下问题。如果我的视图包含一个数据绑定的组合框,如下所示:
<ComboBox ItemsSource="{Binding Path=SourceItems}" SelectedValue="{Binding SelectedItem}" />
在ItemsSource
绑定之前绑定可能会被删除SelectedValue
。结果,SelectedItem
我的数据模型中的 设置为null
. 这是没有预料到的!
我的问题是:有没有一种安全的方法来清除表单的所有数据绑定而没有这种副作用?