使用DataTrigger更改Label的内容

问题描述 投票:1回答:1

我尝试改变标签的行为,以便在通常显示“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>

不幸的是,这个和我直接将触发器绑定到属性的变量都不起作用。

有什么建议?提前致谢!

wpf data-binding datatrigger
1个回答
2
投票

如果您使用TextBlock,或将ContentLabel设置为TextBlock,您可以使用:

<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding LsMw, StringFormat={}{0:########0;-########0;-}}"/>
© www.soinside.com 2019 - 2024. All rights reserved.