1

以下のコードに示すように、TextBox に MultiDataTrigger を設定したいと思います。

コード ビハインドで定義した IsNormal プロパティが false で、TextBox がグリッドの 2 行目にある場合、その IsEnabled は false にする必要があります。

ただし、Grid.Row に関する Condition が正しく機能しません。

この場合、Grid.Row プロパティをバインド パスとして使用する方法を教えてください。

<Style TargetType="TextBox">
    <Style.Triggers>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}, Path=IsNormal}" 
                           Value="False"/>
                <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=Grid.Row}"
                           Value="2"/>
            </MultiDataTrigger.Conditions>
            <Setter Property="IsEnabled" Value="False"/>
        </MultiDataTrigger>
    </Style.Triggers>
</Style>
4

1 に答える 1

2

Grid.Rowは添付プロパティなので、次のようにする必要があります。

<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=(Grid.Row)}"
                       Value="2"/>

への(OwnerClass.AttachedProperty)パスを示すために使用します。AttachedPropertyOwnerClass

于 2015-10-01T10:49:15.457 に答える