0

我有一个 DataGrid,它有一些文本列和一个带有复选框的模板列。当用户单击该行中的任意位置时,我需要切换此复选框。最好的方法是什么?

现在,我在选定项目更改和单元格鼠标左键单击事件上切换复选框。但这有两个问题。

第一个问题是 DataGrid 刚刚进行数据绑定时的情况。第一行被选中。但是当我点击一个单元格时,DataRowCell.MouseLeftButtonDown 事件不会因为未知原因而引发。所以复选框不会被切换。可能的解决方案是在数据绑定后取消选择第一行。

第二个问题是,当用户直接单击另一行的复选框时,复选框会被切换两次。这会导致复选框被切换两次,这意味着选中的值不会改变。

那么实现要求的最佳方法是什么?

4

2 回答 2

0

设置 CheckBox.IsEnabled = false 阻止用户切换它。将 DataGrid 设置为只读,其中未聚焦的第一行。

于 2012-05-24T10:20:20.620 回答
0

您是否尝试将复选框的选中属性绑定到行 isselected 属性?您尚未指定选中的值是否在默认情况下始终处于关闭状态,除非您单击它,如果不是这种情况,您可以尝试使用自定义 IValueConverter 来切换值。

于 2012-05-24T09:11:38.413 回答