DataGridCheckBoxColumn不能正常工作
本文关键字:工作 常工作 不能 DataGridCheckBoxColumn | 更新日期: 2023-09-27 18:14:41
我刚刚创建了一个DataGrid:
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn ... />
<DataGridCheckBoxColumn Binding="{Binding Path=IsEditing, Mode=TwoWay}" Header="IsEditing" />
</DataGrid.Columns>
</DataGrid>
我的问题是当我想检查这个复选框在记录内首先行被选中,只有这样我才能检查这个复选框…这很不舒服……此外……事件,用于创建对象的依赖属性,当我选择另一行时,此DataGrid也会运行。
为了更清楚,我将一步一步地向你解释:
- 我想选择一个项目,它将运行事件的依赖属性。
- 我点击复选框,但是选中的不是选中,而是一行
- 我必须再次点击复选框来检查它,但是事件也不运行
- 我必须点击/选择其他行来运行上次选择对象的依赖属性事件/行
为什么这个工作这么糟糕?是否有任何选项,使其工作更舒适的用户(为我也)?
你需要为DataGrid添加一个MouseLeftButtonUp事件:
private void GridMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var grid = sender as DataGrid;
if (grid == null)
{
return;
}
// Assume first column is the checkbox column.
if (grid.CurrentColumn == grid.Columns[0])
{
var gridCheckBox = (grid.CurrentColumn.GetCellContent(grid.SelectedItem) as CheckBox);
if (gridCheckBox != null)
{
gridCheckBox.IsChecked = !gridCheckBox.IsChecked;
}
}
}
为DataGridCheckBoxColumn添加属性IsThreeState =" False"