我使用DataGrid
并且我有一列Checkbox
。我希望每当一行有密钥时,复选框将被禁用,以便用户无法取消选中它。
我的视图模型中有一个属性,名为IsKey
INotifyPropertyChanged
。我怎么能这样做?
IsChecked
绑定是在启动时检查所有Checkboxes
DataGrid
和用户可以取消选中行,除了键......
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="CheckBox"
IsChecked="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
答案 0 :(得分:1)
假设IsKey
为bool
,您可以使用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>