用于TextBlock的WPF DataTrigger来控制Text

时间:2015-01-28 16:49:13

标签: c# wpf xaml

我有TextBlock

<TextBlock>                  
    <Run Text="{Binding Path=Value1}" />
    <Run Text="-" />
    <Run Text="{Binding Path=Value2}" />
</TextBlock>

我需要添加这样的触发器:如果Value2 = XXX,TextBlock应该只显示Value1。 没有转换器和ViewModel修改可以做到吗?

2 个答案:

答案 0 :(得分:5)

假设您没有单独格式化每个Run(即FontSizeForeground),而是可以MultiBinding使用StringFormat并更改{{ 1 {} Text

时的绑定
Value2=XXX

答案 1 :(得分:0)

    <TextBlock>                  
        <Run Text="{Binding Path=prop1}" />
        <Run Text="-" />
        <TextBlock>
            <TextBlock.Style>
                 <Style>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Path=prop2}" Value="XXX">
                            <Setter Property="TextBlock.Visibility" Value="Collapsed"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
            <Run Text="{Binding Path=prop2}" />
         </TextBlock>
    </TextBlock>

是我发现的唯一方式。运行没有可见性属性。