私の WPF アプリケーションには、TabControl
名前付きのParentTabControlがあります。この ContentTemplate は、TabControl
名前付きのChildTabControlを含む複数のコントロールで構成されています。
ParentTabControl には、たとえば 2 つのタブ (それぞれが異なるソースにバインドされています) が含まれていますが、ChildTabControlには常に 1 つのタブが含まれています。ParentTabControlの最初のタブに注目しています。デフォルトでは、ChildTabControlの最初の (唯一の) タブが選択されています。問題は、 ParentTabControl の 2 番目のタブに切り替えると、そのChildTabControl のタブが選択されないことです。それは正常な動作ですか?常にタブを選択するにはどうすればよいですか?
私は十分に明確であることを願っています。ここにいくつかのコードがあります:
親タブ コントロール:
<TabControl Name="ParentTabControl"
ItemsSource="{Binding ParentItemsSource}"
ContentTemplate="{StaticResource ResourceKey=ContentTemplate}"
IsSynchronizedWithCurrentItem="True" />
コンテンツ テンプレート:
<DataTemplate x:Key="ContentTemplate">
<TabControl Name="ChildTabControl"
ItemsSource="{Binding ChildItemsSource, Converter={StaticResource ResourceKey=ItemToObservableCollectionConverter }}" />
</DataTemplate>
アイテムソース:
public ObservableCollection<ParentData> ParentItemsSource { get; set; }
public class ParentData
{
public ChildData ChildItemsSource { get; set; }
}
コンバータ:
public class ItemToObservableCollectionConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return new ObservableCollection<object> { value };
}
}
ありがとうございました。