数据网格复选框禁用密钥的未选中选项

时间:2014-03-02 20:35:10

标签: c# wpf xaml mvvm checkbox

我使用DataGrid并且我有一列Checkbox。我希望每当一行有密钥时,复选框将被禁用,以便用户无法取消选中它。 我的视图模型中有一个属性,名为IsKey INotifyPropertyChanged。我怎么能这样做?

IsChecked绑定是在启动时检查所有Checkboxes DataGrid和用户可以取消选中行,除了键......

<DataGridTemplateColumn.CellTemplate>
   <DataTemplate>
      <CheckBox x:Name="CheckBox" 
          IsChecked="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}"/>
   </DataTemplate>
</DataGridTemplateColumn.CellTemplate>

1 个答案:

答案 0 :(得分:1)

假设IsKeybool,您可以使用Style.Triggers,因此当IsKey为true时,将IsEnabled设置为false:

<CheckBox x:Name="CheckBox" IsChecked="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}">
    <CheckBox.Style>
        <Style TargetType="{x:Type CheckBox}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsKey}" Value="True">
                    <Setter Property="IsEnabled" Value="False"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </CheckBox.Style>
</CheckBox>