Iは、そのTabItemsこのようなインナーTabControls含む外側のタブコントロールとWPF UIを有する内部テンプレートWPFのTabControlsと選択されたタブの変更:外側タブコントロール
<TabControl>
<TabItem Header="Tab1">
<TabControl>
<TabItem Header="TabA">
</TabItem>
<TabItem Header="TabB">
</TabItem>
</TabControl>
</TabItem>
<TabItem Header="Tab2">
<TabControl>
<TabItem Header="TabC">
</TabItem>
<TabItem Header="TabD">
</TabItem>
</TabControl>
</TabItem>
</TabControl>
外側タブコントロールにTAB2するTab1をから切り替え内側のTabControlsは選択を覚えています。例:Tab1を選択し、TabBを選択し、Tab2を選択し、Tab1を選択すると、TabBがまだ選択されています。
TabControlテンプレートを変更すると、この整合性が崩れます。実際、内側のTabControls上の選択されたタブは、TabControlの外側のTabControlからTab2に移動するとランダムに変化するように見えます。
<Window.Resources>
<ControlTemplate x:Key="TabControlTemplate1" TargetType="{x:Type TabControl}">
<DockPanel>
<StackPanel Orientation="Vertical" DockPanel.Dock="Left" IsItemsHost="True"/>
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"/>
</DockPanel>
</ControlTemplate>
<ControlTemplate x:Key="TabControlTemplate2" TargetType="{x:Type TabControl}">
<DockPanel>
<UniformGrid Rows="1" DockPanel.Dock="Top" IsItemsHost="True"/>
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"/>
</DockPanel>
</ControlTemplate>
</Window.Resources>
<TabControl Template="{DynamicResource TabControlTemplate1}">
<TabItem Header="Tab1">
<TabControl Template="{DynamicResource TabControlTemplate2}">
<TabItem Header="TabA">
</TabItem>
<TabItem Header="TabB">
</TabItem>
</TabControl>
</TabItem>
<TabItem Header="Tab2">
<TabControl Template="{DynamicResource TabControlTemplate2}">
<TabItem Header="TabC">
</TabItem>
<TabItem Header="TabD">
</TabItem>
</TabControl>
</TabItem>
</TabControl>
外部タブコントロールと内部タブコントロールをテンプレートし、選択したタブ状態を内部タブコントロールで維持するにはどうすればよいですか。
これらのタブコントロールに入っている「内部」は、MVVMに準拠していないことが恐れられます。そうすることは、私たちがこのプロジェクトを完了するために必要な時間よりも時間がかかるでしょう。 – Charles