我有一个TextBlock
,它显示视图模型中可用的条目数。现在,如果条目多于零,我尝试使用FontWeight
Bold
格式化此计数。
为简单起见(避免了ValueConverter
的开销),我尝试颠倒逻辑并将FontWeight
的默认Bold
应用于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>
有什么想法吗?
(出于测试目的,我删除了StringFormat
TextBlock
绑定中的Text
部分,但这没有什么区别
答案 0 :(得分:0)
在FontWeight
设置器中设置Style
属性的默认值:
<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