0

我有以下代码:

    <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 列的背景属性的颜色为 LightGray,则它包含的 Text 的值为 False。

如果 StringLock 列中 Text 的值为 False,我想禁用 CanPressButton 列中的按钮。

我该怎么做呢?

4

1 回答 1

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>
于 2012-08-17T08:09:22.537 回答