そのため、実行時にビューをのItemsコレクションに直接追加していTabControl
ます(ビューの周囲にTabItemを作成して、それらのTabItemをTabControlに追加する代わりに)。HasChanges
ビューは、VSと同様に、のヘッダーにバインドする名前のプロパティ(同じ名前のViewModelプロパティのラッパー)を公開して、TabItem
変更が保存されていないタブを識別するためのアスタリスク(*)記号を表示します。すでにDataTemplatesを使用しようとしましたが、のビューオブジェクトにアクセスできませんDataTemplate
。これを行う正しい方法は何ですか?これが私のいくつかの試みの1つです:
<TabControl.ItemTemplate>
<DataTemplate DataType="UserControl">
<StackPanel Orientation="Horizontal" Margin="0" Height="22">
<TextBlock VerticalAlignment="Center" Text="{Binding HeaderText, RelativeSource={RelativeSource AncestorType=UserControl}}" />
<TextBlock Text="*" Visibility="{Binding HasChanges, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource B2VConverter}}" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
TextBlock
2つのsに対して2つの異なるバインディング方法を試していますが、どちらも機能していないことに注意してください。私のビューは、プロパティとを継承しUserControl
て公開します。HasChanges
HeaderText