如何绑定自我?

时间:2014-09-02 13:49:22

标签: wpf xaml data-binding datatrigger

我知道RelativeSource Self绑定到范围内的DataContext。那不是我想要的。我有一个TextBlock,我想设置一个触发器,它将多个绑定2个东西。来自DataContext/ViewModel的值很容易,我已经做到了。我想要的第二个值是TextBlock的Text属性。我似乎无法获得语法。

我有一个TextBlock风格的触发器。

<Style TargetType="TextBlock"}">
    <Setter Property="Margin" Value="10"></Setter>
    <Style.Triggers>
        <DataTrigger Value="True">
            <DataTrigger.Binding>
                <MultiBinding Converter="{StaticResource CustomMultiValueConverter}">
                    <Binding Path="SelectedCategory"></Binding>
                    <Binding Path="Text" RelativeSource="{RelativeSource Self}"></Binding>
                </MultiBinding>
            </DataTrigger.Binding>
            <Setter Property="Foreground" Value="Blue"></Setter>
        </DataTrigger>
    </Style.Triggers>
</Style>

1 个答案:

答案 0 :(得分:1)

您应该能够使用RelativeSource.AncestorType Binding来达到TextBlock.Text值。试试这个:

<Style TargetType="{x:Type TextBlock}">
    <Setter Property="Margin" Value="10"></Setter>
    <Style.Triggers>
        <DataTrigger Value="True">
            <DataTrigger.Binding>
                <MultiBinding Converter="{StaticResource CustomMultiValueConverter}">
                    <Binding Path="SelectedCategory"></Binding>
                    <Binding Path="Text" RelativeSource="{Binding RelativeSource 
                        AncestorType={x:Type TextBlock}}" />
                </MultiBinding>
            </DataTrigger.Binding>
            <Setter Property="Foreground" Value="Blue"></Setter>
        </DataTrigger>
    </Style.Triggers>
</Style>