【问题标题】:WPF DataGrid - how to suspend UI updates from databind and do a bulk update laterWPF DataGrid - 如何暂停数据绑定中的 UI 更新并稍后进行批量更新
【发布时间】: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 属性 - 但这仍然意味着每列都有单独的更新。

【问题讨论】:

    标签: wpf data-binding datagrid updates ui-thread


    【解决方案1】:

    将您的 UpdateSourceTrigger 设置为显式。您可以获取要刷新的绑定表达式,并在准备好后调用 UpdateTarget。见BindingExpression

    【讨论】:

    • 我找不到如何在代码或 XAML 中访问列绑定上的该属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2018-10-26
    • 2014-10-14
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    相关资源
    最近更新 更多