Wpf 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

我希望根据集合中的值为每行启用/禁用datagrid中的复选框列。我有一个名为AccountComponents的ObservableCollection,它是一个名为AccountComponent的类的集合,该类具有一个名为Enabled的布尔属性。我已尝试将Enabled属性绑定到IsReadOnly,但我无法成功地将其绑定

这里是XAML,我尝试了DataGridCheckBoxColumn-

<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。谢谢你的帮助。