使用 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,或将 LabelContent 设置为 TextBlock,您可以使用:

<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding LsMw, StringFormat={}{0:########0;-########0;-}}"/>