我有以下代码:
<DataGridTextColumn IsReadOnly="True" Header="StringLock" Binding="{Binding StringLock}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="False">
<Setter Property="Background" Value="LightGray"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn Header="CanPressButton">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button>Lock module string</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
StringLock列Background属性的颜色为LightGray,如果它包含的Text值为False。
我想禁用CanPressButton列中的按钮,如果StringLock列中Text的值为False。
我该怎么做?
答案 0 :(得分:3)
您可以使用完整的DataContext
(即行项目)来触发:
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding StringLock}" Value="False">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>