【发布时间】:2011-09-25 01:40:12
【问题描述】:
我有一个在 HeaderedContentControl 中包含 TabControl 的边框:
<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>
绑定到 HeaderedContentControl 的 Content 属性的 Workspaces 属性具有一组 UserControl,它们在选项卡中呈现。这一切都很好。
问题是,当我在其中一个用户控件的网格中选择一行时,切换到不同的选项卡,然后返回,所选行被重置。如果 RowDetails 打开,也会发生同样的情况 - 当我切换并返回选项卡时,它会折叠。
有什么办法吗?
编辑:在查看了针对 TabControl 行为的建议解决方案之后,我在犹豫是否可以完全放弃它。任何关于 UI 的想法可以让我保留几个相对复杂的 UserControl 并在它们之间切换,而不会丢失过程中的视觉效果?
谢谢!
【问题讨论】:
标签: wpf wpf-controls tabcontrol