我有一个DataGrid,它有一些文本列和一个带复选框的模板列。当用户点击该行中的任何位置时,我需要设置此复选框。最好的方法是什么?
现在我切换所选项目更改和单元鼠标左键单击事件的复选框。但这有两个问题。
第一个问题是DataGrid刚刚数据绑定的情况。第一行被选中。但是当我单击一个单元格时,DataRowCell.MouseLeftButtonDown事件不会因为未知原因而被引发。因此复选框不会切换。可能的解决方案是在数据绑定后取消选择第一行。
第二个问题是,当用户直接点击另一行的复选框时,复选框会切换两次。这导致复选框被切换两次,这意味着选中的值不会改变。
那么实施该要求的最佳方式是什么?
答案 0 :(得分:0)
您是否尝试将复选框的checked属性绑定到row isselected属性?除非您单击它,否则您尚未指定选中的值是否始终处于关闭状态,如果不是这种情况,您可以尝试使用自定义IValueConverter切换值。
答案 1 :(得分:0)
设置CheckBox.IsEnabled = false,阻止用户切换它。将DataGrid设置为只读取未聚焦的第一行。