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 更新并稍后进行批量更新的主要内容,如果未能解决你的问题,请参考以下文章

WPF DataGrid 多选绑定

DataGrid中的WPF绑定到DataContext

将内部datagrid数据与外部datagrid wpf绑定

如何防止 ComboBox 中的 NewItemPlaceholder 行绑定到与 WPF 中的 DataGrid 相同的 DataTable

DataGrid 数据绑定/更新中的 WPF 组合框不起作用

将按钮绑定到 DataGrid WPF 中的对象