繁体   English   中英

WPF TabControl 启动时没有选定的项目

[英]WPF TabControl no selected Item on start

我正在使用 WPF tabcontrol 来显示从视图模型绑定的项目。

默认情况下,在开始时选择列表的第一项,但我不希望在开始时选择任何项目。 我可以将 OnSelectionChanged 事件中的 SelectedItem 设置为 null,然后在开始时没有选择任何项目,但随后就无法手动选择一个项目。

public partial class ProjectScopeMain : Window
{
  private bool firstStart = true;

  public ProjectScopeMain()
  {
    this.Initialized += this.ProjectScopeMain_Initialized;
    this.InitializeComponent();
  }

  private void ProjectScopeMain_Initialized(object sender, System.EventArgs e)
  {
    this.TabControlSettings.SelectionChanged += TabControlSettingsOnSelectionChanged;
  }

  private void TabControlSettingsOnSelectionChanged(object sender, EventArgs e)
  {
      this.TabControlSettings.SelectedItem = null;
  }

  private void ButtonCreate_Click(object sender, System.Windows.RoutedEventArgs e)
  {
    this.Close();
  }
}

我的 XAML 代码。 SelectedIndex=-1 不起作用

        <customControls:TabControl x:Uid="tabControlSettings" x:Name="TabControlSettings" 
                                   prism:RegionManager.RegionName="{x:Static infrastructure:RegionNames.ProjectScopeTabsRegion}" 
                                   TabStripPlacement="Left" Style="{DynamicResource TabControlStyle}" 

                                   ItemContainerStyle="{DynamicResource TabItemVerticalProjectScopeStyle}" SelectedIndex="-1"/>

我不相信选项卡控件不会让您选择任何内容。 一个简单的解决方法是创建一个具有折叠可见性的空选项卡,并在您希望清除选项卡控件时导航到它。 这将导致显示选项卡的内容(在这种情况下为空)并且不存在标题。

<TabControl Name="MyTabControl" SelectedIndex="0">
    <TabItem Header="" Visibility="Collapsed">
        <!--There's nothing here-->
    </TabItem>
    <TabItem Header="Item 1">
        <TextBlock Text="Some item 1" />
    </TabItem>
    <TabItem Header="Item 2">
        <TextBlock Text="Some item 2" />
    </TabItem>
</TabControl>

你可以“清除”它:

MyTabControl.SelectedIndex = 0;

由于您希望绑定子项,我想您需要先将子项合并到一个资源中。

您可以通过将其IsSelected属性设置为false来取消选择任何TabItem 一旦没有选择TabItemTabControl的内容将是空白的。

您可以通过设置 SelectedTab 属性 nullptr 来选择任何内容。

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.tabcontrol.selectedtab?view=net-5.0

一个 TabPage,代表选定的标签页。 如果没有选择标签页,则该值为空。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM