从另一个用户控件添加 TabItem

本文关键字:添加 TabItem 控件 用户 另一个 | 更新日期: 2023-09-27 18:36:41

我被困在一个非常基本的事情上。

外壳窗口上有两个用户控件。第一个基本上有一个功能区控件。第二个控件基本上有一个选项卡控件。

单击功能区上的按钮时,如何添加新选项卡项?包括命令行管理程序在内的所有视图共享相同的命名空间。

功能区中.xaml

<UserControl x:Name="RibbonControl" ... >

In WorkSpace.xaml

<UserControl x:Name="WorkSpaceControl" ... >

Shell.xaml

<RibbonWindow  x:Name="ShellWindow" ... >
    ...
    <Views:RibbonRegion x:Name="RibbonControl" />
    <Views:WorkspaceRegion  x:Name="WorkSpaceControl" />
    ...
</RibbonWindow>

功能区中.cs

namespace Application.Views
{
  public partial class RibbonControl: UserControl
   {
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        //This throws the error that name is not available in current context.
        WorkSpaceControl.AddDataTab("Hede");   

        //This doesn't throw error. But I think because the tab control
        //has already initialized, it doesn't add the tab neither.
        TabRegion su = new TabRegion();
        su.AddDataTab("Hede");
    }
  }
}

从另一个用户控件添加 TabItem

睡个好觉后,答案如下:

Shell MainFrm = (Shell)App.Current.MainWindow;
MainFrm.WorkSpaceControl.AddDataTab("Something");