【问题标题】:toggle checkbox on row mouse click在行鼠标单击时切换复选框
【发布时间】:2012-05-24 18:20:20
【问题描述】:

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

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

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

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

那么实现需求的最佳方式是什么?

【问题讨论】:

    标签: wpf checkbox


    【解决方案1】:

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

    【讨论】:

    • 我需要在未选中行时让复选框被选中,所以这个解决方案不适合我。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      相关资源
      最近更新 更多