TabItem.Header をいくつかのフィールドから取得したバインディングに設定するにはどうすればよいですか。各バインディングは異なるサイズで表示され、すべて元のヘッダー テキストの代わりに表示されます。ヘッダーのデフォルトのスタイルと動作をオーバーライドすることなく、テキストのみが必要です。
テンプレートを設定しようとしましたが、内部コントロールを含む四角形を作成します。この四角形はユーザーのクリックに応答せず、コントロール スタイルもあります。このコントロールを非表示にして、テキストのみを表示する必要があります。 .
私は次のことを試しました:
<TabControl ItemsSource="{Binding}">
<TabControl.ItemTemplate>
<DataTemplate>
<TabItem>
<TabItem.Header>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Path="Title"/>
<Binding Path="Category.Title"/>
</MultiBinding>
</TabItem.Header>
<TabItem.Content>
<TextBlock>
Here is what is gonna be in the TabItem - not header
</TextBlock>
</TabItem.Content>
</TabItem>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
しかし、それは何も示していません。
また、HeaderTemplate を DataTemplate に設定しようとしましたが、DataTemplate が TabItem スタイルをオーバーライドし、テキストをクリックしてもクリックされたタブに移動しません。また、選択されていないタブが非常におかしいように見えます。テキストの四角形が浮かんでいますが、透明にしたいのです。
したがって、私の質問を要約すると、TabItem.Header.Text を StringFormat で MultiBinding に設定したいと思います。