Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-如何从控件内部调用mainwindow选项卡项_C#_Wpf_Tabcontrol - Fatal编程技术网

C# WPF-如何从控件内部调用mainwindow选项卡项

C# WPF-如何从控件内部调用mainwindow选项卡项,c#,wpf,tabcontrol,C#,Wpf,Tabcontrol,我的主窗口中有tabcontrol。我使用自定义控件创建的不同TBA(用于编辑、添加等)。我希望能够从控件内部处理其他选项卡,这样,例如,当我在某些表单上单击submit时,它会激活特定的其他选项卡 我试过了 BaseWindow n = new BaseWindow(); n.SearchTab.Visibility = System.Windows.Visibility.Hidden; 但很明显,这并不奏效 有什么想法吗? < P>我会考虑在这里修改你的体系结

我的主窗口中有tabcontrol。我使用自定义控件创建的不同TBA(用于编辑、添加等)。我希望能够从控件内部处理其他选项卡,这样,例如,当我在某些表单上单击submit时,它会激活特定的其他选项卡

我试过了

       BaseWindow n = new BaseWindow();
        n.SearchTab.Visibility = System.Windows.Visibility.Hidden;
但很明显,这并不奏效


有什么想法吗?

< P>我会考虑在这里修改你的体系结构。

一个选项是让您的自定义控件(UserControls?)在选项卡内部公开一个。然后,主窗口可以订阅路由事件(在主窗口级别)并处理应用程序导航


从设计的角度来看,这要干净得多,因为用户控件不需要了解其他控件,它们只会说“我按了这个按钮”,主窗口决定事件意味着显示其他窗口。如果你改变了标签,你就不会打破一切,因为这样可以降低标签之间的耦合。

这看起来非常合理。我已经阅读了建议的材料和其他一些材料,但我还是遗漏了一些东西。当我申报时。在我的BaseWindow分部类(我的应用程序的主窗口)中单击事件,然后通过以下方式在我的用户控件的codebehind中调用它:SubmitSearch.Click+=新建RoutedEventHandler(编辑\单击);其中SubmitSearch是我的按钮的名称(在XAML中定义),Edit_Click是函数的名称,在分部类中声明:public event RoutedEventHandler Tap{//add/remove handler}void Edit_Click(object sender,RoutedEventArgs e){//code}我是否应该在用户控件中定义edit_click事件,然后尝试将其链接到主窗口中的editbutton_click事件?(我对WPF相当陌生,所以如果问题看起来很枯燥,请原谅)