我想根据集合中的值为每行启用/禁用数据网格中的复选框列。我有一个名为AccountComponents的ObservableCollection,它是一个名为AccountComponent的类的集合,它有一个名为Enabled的布尔属性。我已经尝试将Enabled属性绑定到IsReadOnly和IsEnabled而没有运气。
这是我尝试使用DataGridCheckBoxColumn的XAML -
<DataGridCheckBoxColumn Binding="{Binding IsChecked}" IsReadOnly="{Binding AccountComponents/Enabled}"/>
这是我尝试过DataGridTemplateColumn的XAML -
<DataGridTemplateColumn Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}" IsEnabled="False"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Grid>
<CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}" IsEnabled="{Binding Enabled}"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
非常感谢任何帮助解决这个问题。
答案 0 :(得分:5)
首先,在使用CheckBoxes时无需指定CellEditingTemplate
。 CheckBoxes本身是“可编辑/可检查”。因此删除CellEditingTemplate
,因为这没有任何意义。
您是否尝试将CheckBox的IsEnabled
属性直接绑定到CellTemplate中Enabled
的{{1}}属性(就像您在CellEditingTemplate中所做的那样)?这应该可以解决你的问题。
AccountComponent