我在WPF中有一个DataGrid
。
每行最左边的单元格是CheckBox
,它在行的模型上设置了Enabled
属性(通过RowViewModel)。
在某行上未选中CheckBox
时,应禁用DataGrid
中的该行,因此应禁用该行其他列中的所有控件,但不能禁用CheckBox
细胞。
如何最轻松地实现这一点,仍然允许启用CheckBox
单元格,以便用户可以单击行中最左侧的单元格中的CheckBox
(因此用户仍可以启用该对象因此再次使完整的行也启用了
答案 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