我有TextBlock
<TextBlock>
<Run Text="{Binding Path=Value1}" />
<Run Text="-" />
<Run Text="{Binding Path=Value2}" />
</TextBlock>
我需要添加这样的触发器:如果Value2 = XXX,TextBlock应该只显示Value1。 没有转换器和ViewModel修改可以做到吗?
答案 0 :(得分:5)
假设您没有单独格式化每个Run
(即FontSize
,Foreground
),而是可以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>
是我发现的唯一方式。运行没有可见性属性。