如何解决TextBlock触发器而不是使用转换器
| 我想在屏幕上显示一个数字。如果该数字为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解析错误,告诉我需要使用事件触发器。
我试图将设置器中的值设置为一个数字,以确保使用空白值不会引起问题
解决方法
您正在与设置文本属性的绑定作斗争。
我要使控件折叠/隐藏,而不是将文本设置为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>
只有样式允许DataTriggers。
xaml解析器要检查属性的存在,因此需要所有者类型。可见性在UIElement类上声明。正如我在两个示例中所示,有两种指定方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。