C# 来自主窗口的WPF调用方法不工作

C# 来自主窗口的WPF调用方法不工作,c#,wpf,visual-studio-2010,xaml,C#,Wpf,Visual Studio 2010,Xaml,我有以下课程: 主窗口: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); MainMenu mainMenu = new MainMenu(this); menuFrame.Navigate(mainMenu); UserPage userP = new UserPage();

我有以下课程:

主窗口:

public partial class MainWindow : Window
{

    public MainWindow()
    {
        InitializeComponent();
        MainMenu mainMenu = new MainMenu(this);
        menuFrame.Navigate(mainMenu);
        UserPage userP = new UserPage();
        contentFrame.Navigate(userP);
    }

    public void LoadAPage(Page page)
    {
        contentFrame.Navigate(page);
    }
}
主菜单:

public partial class MainMenu : Window
{
    private Window switchPage;

    public MainMenu(MainWindow mainP)
    {
        Window mainWindow = mainP;
        InitializeComponent();
        switchPage = mainP;
    }

    private void btn_navigate_user(object sender, EventArgs e)
    {
        UserPage userP = new UserPage(ServiceLogic);

        //switchPage = Window.GetWindow(PageSwitcher);
        //switchPage.LoadAPage(new UserPage());
    }
如您所见,我正在尝试使用主窗口中的
LoadAPage
-方法。主菜单和用户页是主窗口中的子菜单。问题是,无论我尝试什么,我都无法达到
LoadAPage
方法。我试过设置所有者,但不起作用。尝试时
main menu.Owner=this,VisualStudio说
主菜单不包含“所有者”的定义。当我将父类作为参数提供给子类时,没有错误,但是方法
LoadAPage`在那里是未知的

我做错了什么?我应该如何解决这个问题

编辑:将MainMenu更改为窗口而不是UserControl,使我能够设置所有者。不过,我还是达不到这个方法。

真是一团糟:)试试这个


不过,我认为最好使用事件,而不是将窗口对象传递给它的孩子。

是的,我一直在争分夺秒地争取在4小时前开始的10分钟前完成这项工作。将其更改为
MainWindow
成功了,现在一切正常。这不是最好的事情,但考虑到我没有什么经验,我必须在4分钟内展示一个演示,我很高兴它现在的样子!你救了我!
private MainWindow switchPage;

public MainMenu(MainWindow mainP)
{
    InitializeComponent();
    switchPage = mainP;
}

private void btn_navigate_user(object sender, EventArgs e)
{
    UserPage userP = new UserPage(ServiceLogic);
    switchPage.LoadAPage(userP);
}