gpt4 book ai didi

wpf - TextBlock 触发器而不是使用转换器

转载 作者:行者123 更新时间:2023-12-04 17:57:05 29 4
gpt4 key购买 nike

我想在屏幕上显示一个数字。如果该数字为 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 中的值设置为一个数字,以确保没有空白值导致问题

最佳答案

您正在使用绑定(bind)来设置 Text 属性。

我会让控件折叠/隐藏,而不是将文本设置为 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>
  • 只有 Style 允许 DataTriggers。
  • xaml 解析器想要检查属性的存在,因此它需要 ownertype。可见性是在 UIElement 类上声明的。正如我在两个示例中所展示的,有两种指定方式。
  • 关于wpf - TextBlock 触发器而不是使用转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344918/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com