【发布时间】:2018-06-14 06:23:45
【问题描述】:
我尝试将标签的行为更改为在通常显示“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>
不幸的是,无论是 this 还是我将触发器直接绑定到属性的 varint 都不起作用。
有什么建议吗? 提前致谢!
【问题讨论】:
-
这里的根本问题是,如果通过属性设置
Content,Style 无法替换Content 的值(由于dependency property value precedence)。如果您通过样式设置器而不是属性设置默认内容绑定,则触发器将能够替换它,因为允许样式覆盖自身。
标签: wpf data-binding datatrigger