【发布时间】:2011-02-02 00:00:16
【问题描述】:
我正在使用 WPF Toolkit Datagrid,并且有一列是绑定到我的 ViewModel 上的 bool 属性的 DataGridCheckBoxColumn。
我的问题是,当用户选中或取消选中复选框时,我不希望该属性立即更新其值。
现在您必须离开单元格才能更新属性。这是一个复选框。它不能像文本框那样处于编辑过程中。
【问题讨论】:
我正在使用 WPF Toolkit Datagrid,并且有一列是绑定到我的 ViewModel 上的 bool 属性的 DataGridCheckBoxColumn。
我的问题是,当用户选中或取消选中复选框时,我不希望该属性立即更新其值。
现在您必须离开单元格才能更新属性。这是一个复选框。它不能像文本框那样处于编辑过程中。
【问题讨论】:
您必须将 Binding 的 UpdateSourceTrigger 属性设置为 PropertyChanged。默认为 LostFocus。
【讨论】:
解决方案是不要为此使用 DataGridCheckBoxColumn。而是使用
<dg:DataGridTemplateColumn Width="20" Header="" SortMemberPath="IsSelected">
<dg:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsSelected}" />
</DataTemplate>
</dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
默认将其 UpdateSourcerigger 设置为 PropertyChanged...
DataGridCheckBoxColumn 的 UpdateSourceTrigger 设置为 Explicit,并且无法更改。 在这里阅读更多:http://blogs.msdn.com/vinsibal/archive/2009/04/07/5-random-gotchas-with-the-wpf-datagrid.aspx
【讨论】: