You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataGrid中CheckBox点击无法触发绑定源的属性变更问题

问题分析与解决方案

你的问题核心是DataGrid中CheckBox的点击操作未触发对应数据类Enabled属性的setter,根源在于WPF绑定的默认更新时机设置,以及DataGrid的单元格编辑行为。以下是具体修复方案与说明:

直接修复:修改绑定的更新触发器

在CheckBox的绑定配置中,显式添加UpdateSourceTrigger=PropertyChanged,让UI状态变更立刻同步到数据源:

<CheckBox IsChecked="{Binding Enabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center"/>

替代方案:使用DataGridCheckBoxColumn

改用WPF内置的DataGridCheckBoxColumn,它默认适配DataGrid的编辑模式,无需自定义模板:

<DataGrid.Columns>
    <DataGridCheckBoxColumn Header="Action" Binding="{Binding Enabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataGrid.Columns>

原因说明

WPF中TwoWay绑定的默认UpdateSourceTrigger值为LostFocus——只有当控件失去焦点时,才会将UI上的变更同步到数据源。在DataGrid的CellTemplate中,点击CheckBox后单元格不会自动失去焦点,因此setter不会被触发。设置UpdateSourceTrigger=PropertyChanged后,每次CheckBox勾选状态变化时,会立即调用Enabled属性的setter并触发OnPropertyChanged。

额外检查点

  • 确认DataGrid的IsReadOnly属性未设置为true,否则会阻止所有编辑操作。
  • 确保绑定的ItemsSource是ObservableCollection<RefactorOperation>或实现INotifyCollectionChanged的集合,保证集合内容变更时UI能同步更新(初始化正常的话此点大概率无问题)。

内容的提问来源于stack exchange,提问作者pf12345678910

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:57:38