У меня есть граница, которая содержит TabControl в HeaderedContentControl:
<Border Grid.Column="1"
Style="{StaticResource MainBorderStyle}">
<HeaderedContentControl
Content="{Binding Path=Workspaces}"
ContentTemplate="{StaticResource WorkspacesTemplate}"
Header="Decision Workspaces"
Style="{StaticResource MainHCCStyle}"/>
</Border>
TabControl определен в статическом ресурсе:
<DataTemplate x:Key="ClosableTabItemTemplate">
<DockPanel Width="120" ToolTip="{Binding Path=DisplayName, Mode=OneTime}">
<Button
Command="{Binding Path=CloseCommand}"
Content="X"
Cursor="Hand"
DockPanel.Dock="Right"
Focusable="False"
FontFamily="Courier"
FontSize="9"
FontWeight="Bold"
Margin="0,1,0,0"
Padding="0"
VerticalContentAlignment="Bottom"
Width="16" Height="16"
/>
<ContentPresenter
Content="{Binding Path=DisplayName, Mode=OneTime}"
VerticalAlignment="Center"
/>
</DockPanel>
</DataTemplate>
<!--
This template explains how to render the 'Workspace' content area in the main window.
-->
<DataTemplate x:Key="WorkspacesTemplate">
<TabControl
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"
Margin="4"
/>
</DataTemplate>
Свойство Workspaces, которое связано сСвойство Content объекта HeaderedContentControl содержит коллекцию элементов UserControl, которые отображаются на вкладках.Это все работает нормально.
Проблема в том, что когда я выбираю строку в сетке в одном из пользовательских элементов управления, переключаюсь на другую вкладку и затем возвращаюсь, выбранная строка сбрасывается.То же самое происходит, если открыт RowDetails - когда я переключаюсь и возвращаюсь на вкладку, он сворачивается.
Любой способ обойти это?
Редактировать : Посмотрев на предлагаемые решения для поведения TabControl, я хочу узнать, могу ли я вообще отказаться от него.Любые идеи для пользовательского интерфейса, которые позволят мне сохранить несколько относительно сложных UserControls и переключаться между ними, не теряя при этом визуальные эффекты?
Спасибо!