【问题标题】:In WPF 4.0, switching tabs resets usercontrol UI在 WPF 4.0 中,切换选项卡会重置用户控件 UI
【发布时间】: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


    【解决方案1】:

    这是 TabControl 的常见问题。因为它只显示所选选项卡的内容。如果您的选项卡项本身不是视觉对象并且显示为 DataTemplate,则将在您切换选项卡时创建和释放控件。

    herehere 有两种解决方案,它们试图保留每个选项卡的视觉效果。

    【讨论】:

    • 我希望我知道这是一个“常见”问题......我想我将不得不查看附加的行为解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2011-01-18
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多