我正在使用WPF Toolkit Datagrid,并且有一列是绑定到ViewModel上的bool属性的DataGridCheckBoxColumn。DataGridCheckBoxColumn立即绑定
我的问题是,我不想让该属性在用户选中或取消选中复选框时立即更新其值。
现在,您必须离开单元格才能更新属性。这是一个复选框。它不能在编辑中间像文本框可以...
任何帮助,将不胜感激。
/J
我正在使用WPF Toolkit Datagrid,并且有一列是绑定到ViewModel上的bool属性的DataGridCheckBoxColumn。DataGridCheckBoxColumn立即绑定
我的问题是,我不想让该属性在用户选中或取消选中复选框时立即更新其值。
现在,您必须离开单元格才能更新属性。这是一个复选框。它不能在编辑中间像文本框可以...
任何帮助,将不胜感激。
/J
你必须设置绑定到的PropertyChanged的UpdateSourceTrigger属性。默认值是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
不,它不默认。您必须手动设置它,即“UpdateSourceTrigger = PropertyChanged”。否则,您只会在视觉上进行更改(VS2010)。无论如何,非常感谢您的帮助。 – greenoldman 2010-08-05 12:29:50
注意:即使DataGrid中的文本框也需要执行UpdateSourceTrigger。在这种情况下可能需要PropertyChanged = LostFocus(即使这是默认设置) – 2011-11-08 06:40:09
使用Silverlight 5时必须执行此操作 – Aducci 2014-04-15 17:27:18
这为我工作。谢谢。 – alimbada 2010-09-27 11:16:01
这也适用于我(WPF4) - 也许这是改变了.NET4 – 2010-12-28 23:10:29
肯定在模板列中工作 – 2011-09-16 03:34:14