WPF DataGrid禁用一行,但允许一个单元格

时间:2019-05-31 09:41:16

标签: wpf mvvm datagrid wpfdatagrid

我在WPF中有一个DataGrid。 每行最左边的单元格是CheckBox,它在行的模型上设置了Enabled属性(通过RowViewModel)。

在某行上未选中CheckBox时,应禁用DataGrid中的该行,因此应禁用该行其他列中的所有控件,但不能禁用CheckBox细胞。

如何最轻松地实现这一点,仍然允许启用CheckBox单元格,以便用户可以单击行中最左侧的单元格中的CheckBox(因此用户仍可以启用该对象因此再次使完整的行也启用了

1 个答案:

答案 0 :(得分:1)

您可以定义一个单元格样式,该样式具有与CheckBox的source属性绑定的触发器,并在source属性返回{时将单元格的IsEnabled属性设置为false {1}}或false

true

然后,将除具有<Style x:Key="cellStyle" TargetType="DataGridCell"> <Style.Triggers> <DataTrigger Binding="{Binding Enabled}" Value="False"> <Setter Property="IsEnabled" Value="False" /> </DataTrigger> </Style.Triggers> </Style> 的列之外的所有列的CellStyle属性设置为以下样式:

CheckBox