我正在使用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