数据网格复选框列即时绑定

10

我正在使用WPF Toolkit Datagrid,并有一个列是DataGridCheckBoxColumn,它绑定到ViewModel上的一个bool属性。

我的问题是,当用户选中或取消选择复选框时,我希望该属性立即更新其值。

现在必须离开单元格才能更新属性。这是一个复选框。它不能像文本框一样处于编辑中。

3个回答

25

您需要将Binding的UpdateSourceTrigger属性设置为PropertyChanged。默认值为LostFocus。


这对我也起作用了(WPF4)-也许这是.NET4的一些变化。 - Will Dean
1
对我来说可不是这样的。(WPF4) - Richard

9
解决方案是不要使用DataGridCheckBoxColumn。相反,请使用
<dg:DataGridTemplateColumn Width="20" Header="" SortMemberPath="IsSelected">
   <dg:DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
         <CheckBox  IsChecked="{Binding Path=IsSelected}" />
       </DataTemplate>
   </dg:DataGridTemplateColumn.CellTemplate>
 </dg:DataGridTemplateColumn>

默认情况下,DataGridTextColumn的UpdateSourceTrigger是PropertyChanged...

DataGridCheckBoxColumn的UpdateSourceTrigger被设置为Explicit,且不能更改。 了解更多


4
不,它不会自动设置。你需要手动设置,即“UpdateSourceTrigger=PropertyChanged”。否则,你只能在视觉上进行更改(VS2010)。无论如何,非常感谢你的帮助。 - greenoldman
请注意,即使是 DataGrid 中的文本框,您也需要进行 UpdateSourceTrigger。在这种情况下,可能希望使用 PropertyChanged=LostFocus(即使这是默认值)。 - Simon_Weaver
1
我在使用Silverlight 5时不得不这样做。 - Aducci


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接