我想在屏幕上显示一个数字。如果该数字为0,我根本不希望它显示。
<TextBlock Text="{Binding Path=Class.Count}" FontSize="20" FontWeight="Bold">
<TextBlock.Triggers>
<DataTrigger Binding="{Binding Path=Class.Count}" Value="0">
<Setter Property="TextBlock.Text" Value=""/>
</DataTrigger>
</TextBlock.Triggers>
</TextBlock>
我在常规触发器无法解决问题后尝试了上面的代码。我不想写一个转换器来处理一个特定的数字。有没有办法创建一个触发器,如果它是0,将隐藏数字?
编辑:当我尝试使用常规触发器或数据触发器时,我收到xaml解析错误,告诉我需要使用事件触发器。
我尝试将setter中的值设置为一个数字,以确保空值不会导致问题
答案 0 :(得分:8)
您正在使用绑定来设置文本属性。
我将控件折叠/隐藏,而不是将文本设置为String.Empty。
减少混乱。
修改强>
<TextBox>
<TextBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Name.Length}" Value="0">
<Setter Property="UIElement.Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
或强>
<TextBox>
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding Name.Length}" Value="0">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>