WPF DataGrid - 如何暂停数据绑定中的 UI 更新并稍后进行批量更新
Posted
技术标签:
【中文标题】WPF DataGrid - 如何暂停数据绑定中的 UI 更新并稍后进行批量更新【英文标题】:WPF DataGrid - how to suspend UI updates from databind and do a bulk update later 【发布时间】:2013-05-13 03:24:18 【问题描述】:必须对我的源代码 DataTable
上的代码进行大量逐个单元格的更改,我需要一种方法来暂时停止它向其绑定的 DataGrid
发送数据绑定更新:
我在后面的代码中有一个DataGrid
绑定到DataTable
。
DataGrid
在 XAML 中定义了列以及绑定属性:
<DataGrid.Columns>
<DataGridTextColumn Header="StaticResource str_Line" Binding="Binding Path=Pkey" />
在加载时后面的代码中,我将数据源 (DataTable) 分配给我的网格:
myGrid.ItemsSource = myTable.DefaultView;
现在由于必须在显示数据上运行一堆自定义数据格式(主要是必须根据其他列的值清除一些列,还有一些图像切换)我手动更新这个源表 - 它相对较小, 总是少于 20 行。我将逐行、逐个单元格地确定这个特定单元格是否需要隐藏或显示它的值。
我不希望我的 UI 线程为每个单元格获取单独的更新事件,但我还没有找到任何切换绑定的方法。
找到 Binding.UpdateSourceTrigger 属性 - 但这仍然意味着每列都有单独的更新。
【问题讨论】:
【参考方案1】:将您的 UpdateSourceTrigger 设置为显式。您可以获取要刷新的绑定表达式,并在准备好后调用 UpdateTarget。见BindingExpression。
【讨论】:
我找不到如何在代码或 XAML 中访问列绑定上的该属性。以上是关于WPF DataGrid - 如何暂停数据绑定中的 UI 更新并稍后进行批量更新的主要内容,如果未能解决你的问题,请参考以下文章
将内部datagrid数据与外部datagrid wpf绑定
如何防止 ComboBox 中的 NewItemPlaceholder 行绑定到与 WPF 中的 DataGrid 相同的 DataTable