【问题标题】:WPF - how to call mainwindow tabitems from inside a controlWPF - 如何从控件内部调用主窗口 tabitems
【发布时间】:2009-12-05 09:21:38
【问题描述】:

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

我试过了

       BaseWindow n = new BaseWindow();
        n.SearchTab.Visibility = System.Windows.Visibility.Hidden;

显然这并不能解决问题。

有什么想法吗?

【问题讨论】:

    标签: c# wpf tabcontrol


    【解决方案1】:

    我会考虑在这里重新设计您的架构。

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

    从设计的角度来看,这更简洁,因为用户控件不需要知道其他控件,他们只是说“我点击了这个按钮”,主窗口决定该事件意味着显示另一个窗口.如果你改变你的标签,你不会破坏一切,因为这会降低你的标签之间的耦合。

    【讨论】:

    • 这看起来很合理。我已经阅读了建议的材料以及其他一些材料,但我仍然缺少一些东西。当我宣布。我的 BaseWindow 部分类(我的应用程序的主窗口)中的一个点击事件,然后通过以下方式在我的用户控件的代码隐藏中调用它: SubmitSearch.Click += new RoutedEventHandler(Edit_click);其中 SubmitSearch 是我的按钮的名称(在 XAML 中定义),Edit_Click 是函数的名称,在部分类中声明: public event RoutedEventHandler Tap {//add/remove handler} void Edit_Click(object sender, RoutedEventArgs e) { //代码}
    • 我应该在用户控件中定义edit_click事件,然后尝试将其链接到主窗口中的editbutton_click事件吗? (我对 WPF 相当陌生,如果问题看起来很枯燥,请见谅)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2015-08-05
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多