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}"/>
起動時にエラーが発生します: Unable to cast object of type 'Avalonia.Data.Binding' to type 'System.String' その時点でバインディングを処理していないと思います。
正しい道は何ですか?