Wpf DataGridCheckBoxColumn是只读属性绑定
我希望根据集合中的值为每行启用/禁用datagrid中的复选框列。我有一个名为AccountComponents的ObservableCollection,它是一个名为AccountComponent的类的集合,该类具有一个名为Enabled的布尔属性。我已尝试将Enabled属性绑定到IsReadOnly,但我无法成功地将其绑定 这里是XAML,我尝试了DataGridCheckBoxColumn-Wpf DataGridCheckBoxColumn是只读属性绑定,wpf,xaml,data-binding,mvvm,Wpf,Xaml,Data Binding,Mvvm,我希望根据集合中的值为每行启用/禁用datagrid中的复选框列。我有一个名为AccountComponents的ObservableCollection,它是一个名为AccountComponent的类的集合,该类具有一个名为Enabled的布尔属性。我已尝试将Enabled属性绑定到IsReadOnly,但我无法成功地将其绑定 这里是XAML,我尝试了DataGridCheckBoxColumn- <DataGridCheckBoxColumn Binding="{Binding Is
<DataGridCheckBoxColumn Binding="{Binding IsChecked}" IsReadOnly="{Binding AccountComponents/Enabled}"/>
这里是XAML,我尝试了DataGridTemplateColumn-
<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>
非常感谢您提供的任何帮助。首先,仅使用复选框时,无需指定
CellEditingTemplate
。复选框本身是“可编辑/可检查的”。因此,删除CellEditingTemplate
,因为这毫无意义
您是否尝试将复选框的IsEnabled
属性直接绑定到CellTemplate中AccountComponent
的Enabled
属性(就像您在CellEditingTemplate中所做的那样)?这应该能解决你的问题
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}"
IsEnabled="{Binding Enabled}"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
您从“输出”窗口中得到了什么消息?对于任何类型列上的任何属性都是相同的。把你的问题抽象出来,搜索,找到解决方案。谢谢你,马库斯。您能告诉我为什么绑定到DataGridCheckBoxColumn上的IsReadOnly属性不起作用吗?我还没有测试它,但是您的带有“AccountComponents/Enabled”的绑定表达式看起来可疑。这通常用于主/详细场景,在这种情况下,您已经拥有了详细信息。我的第一次尝试是IsReadOnly=“{Binding Enabled}”,我认为它看起来也很奇怪,但这是我从数据绑定弹出窗口选择Enabled时创建的语法。我试过你的建议,但没用。我想我会坚持使用datatemplatecolumn。谢谢你的帮助。