C# 使用框架内的按钮编辑框架

C# 使用框架内的按钮编辑框架,c#,wpf,xaml,C#,Wpf,Xaml,我有一个主窗口,其中包含一个框架。 我的框架使用主窗口上的按钮在不同的xaml之间切换。 我现在遇到的问题是,我还需要从框架中加载的xaml中的按钮执行此操作。 我尝试了以下几点: private void Button_Click(object sender, RoutedEventArgs e) { MainWindow mw = new MainWindow(); Page myPage = new Page();

我有一个主窗口,其中包含一个框架。 我的框架使用主窗口上的按钮在不同的xaml之间切换。 我现在遇到的问题是,我还需要从框架中加载的xaml中的按钮执行此操作。 我尝试了以下几点:

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            MainWindow mw = new MainWindow();
            Page myPage = new Page();

            mw.editFramePage(myPage);

        }
以下是我的编辑editFramePage方法:

public void editFramePage(Page page)
        {
            myFrame.NavigationService.Navigate(page, UriKind.Relative);
        }
这是可行的,但是它会弹出一个新的主窗口,我希望它与我当前的主窗口。
我需要一些帮助

问题在于您正在创建一个新的主窗口。您需要保留对原始主窗口的引用,并在该主窗口上调用editFramePage

WPF应用程序的默认实现框架将主窗口保存在App.MainWindow中。要使用它,您需要使用Application.Current.MainWindow

因此,您的函数应该如下所示:

private void Button_Click(object sender, RoutedEventArgs e)
{
    MainWindow mw = (MainWindow) Application.Current.MainWindow;
    Page myPage = new Page();

    mw.editFramePage(myPage);
}

请注意,强制转换为MainWindow是必需的,因为Application.MainWindow返回的是Window类型,而不是您需要的更具体的类型。

问题在于您正在创建一个新的MainWindow。您需要保留对原始主窗口的引用,并在该窗口上调用editFramePage。请给我一个例子,以拯救我的生命。谢谢