Wpf 在datagrid的一列中禁用/设置只读所有组合框

Wpf 在datagrid的一列中禁用/设置只读所有组合框,wpf,binding,datagrid,datagridcomboboxcolumn,Wpf,Binding,Datagrid,Datagridcomboboxcolumn,我的网格被正确绑定了,我所要做的就是根据代码隐藏的任何条件禁用或使其只读Column2中包含的所有组合框。假设网格渲染后,我们得到10行包含此comboxbox。我必须在这10行中禁用combobox列 <DataGridTextColumn Binding="{Binding Value1}" Header="Column1" IsReadOnly="True"/> <DataGridTemplateColumn Header="Column2">

我的网格被正确绑定了,我所要做的就是根据代码隐藏的任何条件禁用或使其只读Column2中包含的所有组合框。假设网格渲染后,我们得到10行包含此comboxbox。我必须在这10行中禁用combobox列

<DataGridTextColumn Binding="{Binding Value1}" Header="Column1" IsReadOnly="True"/>
    <DataGridTemplateColumn Header="Column2">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox SelectedItem="{Binding MySelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding MyComboItemSource}" >                                       
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGridTextColumn>

您可以对组合框中启用的属性使用转换器

差不多

<ComboBox IsEnabled ={Binding Path=XXXX, Converter = {StaticResource MyConverter}} .... />

您可以对组合框中的IsEnabled属性使用转换器

差不多

<ComboBox IsEnabled ={Binding Path=XXXX, Converter = {StaticResource MyConverter}} .... />

您只需要在代码隐藏中创建一个bool属性,并绑定到xaml中combobox的isEnabled属性

代码隐藏

private bool _Disable;

        public bool Disable
        {
            get { return _Disable; }
            set
            {
                _Disable= value;
                OnPropertyChanged("Disable");
            }
        }
Xaml


您只需要在代码隐藏中创建一个bool属性,并绑定到xaml中combobox的isEnabled属性

代码隐藏

private bool _Disable;

        public bool Disable
        {
            get { return _Disable; }
            set
            {
                _Disable= value;
                OnPropertyChanged("Disable");
            }
        }
Xaml