2012-05-24 64 views
0

我有一个DataGrid,它有一些文本列和一个带复选框的模板列。当用户点击该行的任何地方时,我需要使该复选框切换。什么是最好的方式来做到这一点?在行鼠标上点击复选框点击

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

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

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

那么实施该要求的最佳方式是什么?

回答

0

您是否尝试将复选框的checked属性绑定到行isselected属性?您没有指定默认情况下,选中的值始终是关闭的,除非您点击该值,否则您可以尝试使用自定义IValueConverter切换值。

+0

我需要让这个复选框在行被取消选中时被选中,所以这个解决方案不适合我。 –

0

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