TextBlock 文本的整数值 0 上的 DataTrigger 不起作用
DataTrigger on integer value 0 for TextBlock text doesn't work
我有一个 TextBlock
显示视图模型中可用的条目数。现在我尝试用 FontWeight
Bold
格式化这个计数,如果有超过零个条目。
为简单起见(避免 ValueConverter
的开销)我颠倒了逻辑并将 Bold
的默认 FontWeight
应用于 TextBlock 并试图覆盖此 FontWeight
通过 DataTrigger
,如果没有条目。
但恐怕这行不通,计数一直显示为粗体:
<TextBlock Text="{Binding Entries.Count, StringFormat=' [{0}]'}" FontWeight="Bold">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding SharedNodeNames.Count}" Value="0">
<Setter Property="FontWeight" Value="Regular" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
知道这里出了什么问题吗?
(出于测试目的,我删除了 TextBlock
Text
绑定中的 StringFormat
部分,但这没有什么区别)
在Style
setter中设置FontWeight
属性的默认值:
<TextBlock Text="{Binding Entries.Count, StringFormat=' [{0}]'}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="FontWeight" Value="Bold" />
<Style.Triggers>
<DataTrigger Binding="{Binding SharedNodeNames.Count}" Value="0">
<Setter Property="FontWeight" Value="Regular" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
本地值优先于样式设置的值:https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/dependency-property-value-precedence
我有一个 TextBlock
显示视图模型中可用的条目数。现在我尝试用 FontWeight
Bold
格式化这个计数,如果有超过零个条目。
为简单起见(避免 ValueConverter
的开销)我颠倒了逻辑并将 Bold
的默认 FontWeight
应用于 TextBlock 并试图覆盖此 FontWeight
通过 DataTrigger
,如果没有条目。
但恐怕这行不通,计数一直显示为粗体:
<TextBlock Text="{Binding Entries.Count, StringFormat=' [{0}]'}" FontWeight="Bold">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding SharedNodeNames.Count}" Value="0">
<Setter Property="FontWeight" Value="Regular" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
知道这里出了什么问题吗?
(出于测试目的,我删除了 TextBlock
Text
绑定中的 StringFormat
部分,但这没有什么区别)
在Style
setter中设置FontWeight
属性的默认值:
<TextBlock Text="{Binding Entries.Count, StringFormat=' [{0}]'}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="FontWeight" Value="Bold" />
<Style.Triggers>
<DataTrigger Binding="{Binding SharedNodeNames.Count}" Value="0">
<Setter Property="FontWeight" Value="Regular" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
本地值优先于样式设置的值:https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/dependency-property-value-precedence