c# - 从 WPF 中的页面内调用公共(public) MainWindow 函数

标签 c# wpf xaml

我有一个 WPF 应用程序,它有一个主窗口和几个我导航到的页面:

例如,从一页到另一页,我使用:

NavigationService.Navigate(new MyPage1());

然后从我的主窗口显示我使用的页面:

_mainFrame.Navigate(new PageHome());

我的 MainWindow 上有一个公共(public)函数,我想从页面内调用它。

我该怎么做?

最佳答案

您不应该直接调用该方法。

您应该做的是在您的页面中引发一个事件并让 MainWindow 订阅该事件。然后该事件处理程序可以调用相关方法。

在 PageHome 中:

public event EventHandler SomethingHappened;
private void MakeSomethingHappen(EventArgs e){
    if(SomethingHappened != null){
        SomethingHappened(this, e);
    }
}

在主窗口中:

pageHome.SomethingHappened += new EventHandler(pageHome_SomethingHappened);

void pageHome_SomethingHappened(object sender, EventArgs e){
     MyMethod();
}

关于c# - 从 WPF 中的页面内调用公共(public) MainWindow 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20661443/

相关文章:

c# - 我应该如何实现 Object.GetHashCode() 以实现复杂的相等性?

c# - SQL 更新命令

c# - 不能在 C# 中使用 stackalloc 来初始化先前声明的指针吗?

c# - EventToCommand 永远不会被触发 - MVVM

c# - EntityFramework 6.0.0.0 读取数据,但不插入

c# - 将WPF窗口DataContext设置为RelativeSource Self

c# - WPF:沿路径几何设置动画

c# - WPF 中的简单数据绑定(bind)

wpf窗口事件在窗口关闭后继续引发

wpf - 通过样式将按钮的内容设置为 <Image>