1

我想为 TextBox 设置 MultiDataTrigger,如下面的代码所示。

如果我在代码隐藏中定义的 IsNormal 属性为 false,并且 TextBox 位于 Grid 的第二行,则它的 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)指示. AttachedProperty_OwnerClass

于 2015-10-01T10:49:15.457 回答