我正在使用 AvaloniaUI 制作标签列表(TextBlocks)。根据基础数据状态,我希望其中一些是粗体的。有人可以向我指出如何根据绑定值在 DataTemplate 中将 TextBlock 设为粗体吗?
商品代码:
public FontWeight DisplayWeight() => !IsBold ? FontWeight.Black : FontWeight.Bold;
模板代码:
<DataTemplate>
<TextBlock Margin="4" TextWrapping="Wrap" FontWeight="{Binding DisplayWeight}" Text="{Binding Description}"/>
</DataTemplate>
放入硬编码的重量是可行的。
所以我尝试了一种风格:
public string DisplayClass() => IsBold ? "h1" : "p";
<TextBlock Margin="4" TextWrapping="Wrap" Classes="{Binding DisplayClass}" Text="{Binding Description}"/>
这让我在启动时出错:无法将“Avalonia.Data.Binding”类型的对象转换为“System.String”类型,我认为它此时尚未处理绑定。
请问什么是正确的路径?