记录一下工作遇到的一个小bug,DataGrid的DataGridCheckBoxColumn 问题

发布时间 2023-12-08 08:45:17作者: 骑猪望天

<DataTemplate x:Key="CheckBoxDataTemplate">
<Grid>
<CheckBox Click="CheckBox_Checked"

IsChecked="{Binding IsSelect , Mode=OneWay,UpdateSourceTrigger=PropertyChanged}">
</CheckBox>
</Grid>
</DataTemplate>

 

使用了上面的数据模板,单击的时候会触发CheckBox_Checked事件,CheckBox_Checked事件会改变所选行对象的IsSelect 的值。

但是在使用过程中发现,会有几个行对象,单击的时候,会先触发PropertyChanged改变IsSelect,然后进入CheckBox_Checked事件,改变IsSelect 的时候再次触发PropertyChanged。这样的结果就是复选框不能选中,一直都是未选中。我程序里也没有其他地方改变IsSelect ,而且每次都是那些几个行对象有这个现象。

解决方法:

Mode使用OneWay,只能通过UI界面来改变这个值,不能使用TwoWay。