如何根据绑定值使Avalonia XAML TextBlock加粗?

如何根据绑定值使Avalonia XAML TextBlock加粗?,xaml,avaloniaui,Xaml,Avaloniaui,我使用AvaloniaUI制作标签列表(文本块)。根据底层数据状态,我希望其中一些是粗体的。有人能告诉我如何根据绑定值在DataTemplate中加粗或不加粗文本块吗 项目代码: public FontWeight DisplayWeight() => !IsBold ? FontWeight.Black : FontWeight.Bold; 模板代码: <DataTemplate> <TextBlock Margin="4" TextWra

我使用AvaloniaUI制作标签列表(文本块)。根据底层数据状态,我希望其中一些是粗体的。有人能告诉我如何根据绑定值在DataTemplate中加粗或不加粗文本块吗

项目代码:

    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}"/>
publicstringdisplayclass()=>IsBold?“h1”:“p”;
这使我在启动时出错:无法将“Avalonia.Data.Binding”类型的对象强制转换为“System.String”类型 我想当时它还没有处理绑定


请问哪条路正确

好的,下面的XAML行:

 <TextBlock Margin="4" TextWrapping="Wrap" FontWeight="{Binding DisplayWeight}" Text="{Binding Description}"/>

是否确实已实现INotifyPropertyChanged并正确触发DisplayWeight属性的PropertyChanged事件?此处没有任何更改,目前正在创建中。然而,如果我需要做更多的工作,我会调查的。
    private FontWeight _displayWeight = FontWeight.Normal;
    private bool _isBold;

    public FontWeight DisplayWeight
    {
        get { return _displayWeight; }
        set { this.RaiseAndSetIfChanged(ref this._displayWeight, value); }
    }

    public bool IsBold
    {
        get => _isBold;
        set
        {
            _isBold = value;
            DisplayWeight = _isBold ? FontWeight.Bold : FontWeight.Normal;
        }
    }