我有一个DataGrid
,其中的DataGridTemplateColumn.CellTemplate
定义如下:
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<CheckBox ToolTip="Select all items"
IsChecked="{Binding IsSelected}" Name="chkSelectAll" Checked="AllItem_Checked"
Unchecked="UnCheckAll_UnChecked" IsHitTestVisible="{Binding Path=IsSelected}"/>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" Checked="Item_Checked" Unchecked="Item_UnChecked"
IsChecked="{Binding IsSelected}" IsHitTestVisible="{Binding Path=IsSelected}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
网格具有绑定的对象列表。
我希望对于ItemsSource
中的每个对象,如果IsSelected
属性为true,则该复选框为只读。
我不知道该如何编码;我尝试将IsHitTestVisible属性绑定到IsSelected ItemsSource Objects属性,但是它不起作用。
我在Google上搜索并找到了一些有关Multidatatriggers的主题,但不了解它们如何工作。
答案 0 :(得分:1)
如果Style
返回DataTrigger
,则可以将CheckBox
与IsSelected
一起使用来禁用true
:
<CheckBox HorizontalAlignment="Center" Checked="Item_Checked" Unchecked="Item_UnChecked" IsChecked="{Binding IsSelected}">
<CheckBox.Style>
<Style TargetType="CheckBox">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected}" Value="True">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>