记录一下工作遇到的一个小bug,DataGrid的DataGridCheckBoxColumn 问题
<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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通