如何在使用 dataGrid 的 selectedItem 的文本框中使用数据触发器?

How to use a data trigger in a text box that uses the selectedItem of a dataGrid?

我想在文本框中使用数据触发器,根据数据网格中 selected 项的 属性 的值设置 isEnabled 属性。

我正在尝试这个:

<TextBox.Style>
    <Style TargetType="TextBox">
        <Style.Triggers>
            <DataTrigger Binding="{Binding MyDataGridName, ElementName=SelectedItem.MyProperty1.MyProperty2}" Value="1">
                <Setter Property="IsEnabled" Value="False"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>

但文本框始终处于启用状态。当我 select 该项目时,我确实检查过它具有 属性1 并且 属性2 具有 1 作为值。所以我猜问题是我没有正确设置触发器。

尝试此代码,您需要将 Datagrid 指定为 elementName 而不是 selectedItem:

<TextBox.Style>
    <Style TargetType="TextBox">
        <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=MyDataGridName, Path=SelectedItem.MyProperty1.MyProperty2}" Value="1">
                <Setter Property="IsEnabled" Value="False"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>