使用 DataTrigger 更改标签的内容
Changing content of a Label with a DataTrigger
我尝试更改我的标签的行为,以便在它们通常显示“0”时显示“-”。我试图通过使用 DataTrigger 来实现这一点(我也在考虑转换器,但 DataTrigger 可能是我的代码更优雅的解决方案)。
<Label Grid.Row="1" Grid.Column="1" Content="{Binding LsMw, UpdateSourceTrigger=PropertyChanged}" ContentStringFormat="{}{0:########0}">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content}" Value="0">
<Setter Property="Content" Value="-"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
不幸的是,这和我将触发器直接绑定到 属性 的 varaint 都不起作用。
有什么建议吗?
提前致谢!
如果您要使用 TextBlock
,或将 Label
的 Content
设置为 TextBlock
,您可以使用:
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding LsMw, StringFormat={}{0:########0;-########0;-}}"/>
我尝试更改我的标签的行为,以便在它们通常显示“0”时显示“-”。我试图通过使用 DataTrigger 来实现这一点(我也在考虑转换器,但 DataTrigger 可能是我的代码更优雅的解决方案)。
<Label Grid.Row="1" Grid.Column="1" Content="{Binding LsMw, UpdateSourceTrigger=PropertyChanged}" ContentStringFormat="{}{0:########0}">
<Label.Style>
<Style TargetType="Label">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content}" Value="0">
<Setter Property="Content" Value="-"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
不幸的是,这和我将触发器直接绑定到 属性 的 varaint 都不起作用。
有什么建议吗? 提前致谢!
如果您要使用 TextBlock
,或将 Label
的 Content
设置为 TextBlock
,您可以使用:
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding LsMw, StringFormat={}{0:########0;-########0;-}}"/>