我有一个TextBlock
,当Visibility
没有文字时我想将属性Collapsed
设置为TextBlock
。我想知道,我确定应该有更好的方法来检查属性Lenght
的{{1}}是否等于0。
Text
在这里,我必须为 <TextBlock Name="TextBlockHeader" Foreground="White" FontSize="18" FontWeight="Bold" Text="{Binding Header}" Margin="0,0,0,25">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=TextBlockHeader, Path=Text.Length}" Value="0">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
定义一个名称,我可以在TextBlock
Datatrigger
中引用它
但是,如何在不必为Binding="{Binding ElementName=TextBlockHeader, Path=Text.Length}"
?
答案 0 :(得分:1)
您通常会使用触发器而不是DataTriggers,并将Text属性与null
或空字符串进行比较。
<Style TargetType="TextBlock">
<Style.Triggers>
<Trigger Property="Text" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="Text" Value="">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>
</Style>
由于TextBlock类似乎强制将Text属性值强制为非null,因此仅为空字符串设置第二个Trigger就足够了。