WPF datagrid - 一旦值更改,就会在复选框列中提交更改

Ste*_*son 9 c# wpf datagrid wpfdatagrid

我对datagrid有一个小问题.

在我的网格中,我有一个复选框列,这是唯一可编辑的列.

我正在寻找的行为是,一旦复选框的状态发生变化,datagrid就会更新i的数据源.因此,用户检查/取消选中框>基础数据表的更新.

当行失去焦点时,默认行为似乎更新源,要求用户按键或单击其他控件以保存更改.
我该如何改变这种行为?

我没有看到任何可以执行此操作的datagrid属性,也没有看到DataGridCheckBoxColumn的CheckChanged事件.

slu*_*ter 14

您需要UpdateSourceTrigger绑定列的属性.这是一个简单的例子,你可以充实它并填写空白:

<DataGrid x:Name="someGrid">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn Binding="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}" />
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

  • 是的,我做了一些测试.似乎问题在于数据网格本身,而不是绑定.在单元格失去焦点之前,它不会"结束"编辑模式. (4认同)

小智 6

DataGrid 本身将所有列(模板列除外)的 UpdateSourceTrigger 设置为 LostFocus 并且这不能被覆盖。因此需要使用带有复选框模板的模板列。

编辑:这只是围绕 DataGrid 列的一长串愚蠢问题中的一个。此处概述更多内容。