DataGridCheckBoxColumn IsReadOnly属性绑定

时间:2013-06-18 20:15:33

标签: wpf xaml data-binding mvvm

我想根据集合中的值为每行启用/禁用数据网格中的复选框列。我有一个名为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>

非常感谢任何帮助解决这个问题。

1 个答案:

答案 0 :(得分:5)

首先,在使用CheckBoxes时无需指定CellEditingTemplate。 CheckBoxes本身是“可编辑/可检查”。因此删除CellEditingTemplate,因为这没有任何意义。

您是否尝试将CheckBox的IsEnabled属性直接绑定到CellTemplate中Enabled的{​​{1}}属性(就像您在CellEditingTemplate中所做的那样)?这应该可以解决你的问题。

AccountComponent
相关问题