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);
}