我有一个WPF应用程序,它有一个主窗口和几个我导航到的页面,如下所示:
例如,从一页到另一页,我使用:
NavigationService.Navigate(new MyPage1());
Run Code Online (Sandbox Code Playgroud)
从我的主窗口显示我使用的页面:
_mainFrame.Navigate(new PageHome());
Run Code Online (Sandbox Code Playgroud)
我在MainWindow上有一个公共函数,我想从内页调用.
我该怎么做呢??
您不应该直接调用该方法.
您应该做的是在您的页面中引发一个事件并让MainWindow订阅该事件.然后,该事件处理程序可以调用相关方法.
在PageHome:
public event EventHandler SomethingHappened;
private void MakeSomethingHappen(EventArgs e){
if(SomethingHappened != null){
SomethingHappened(this, e);
}
}
Run Code Online (Sandbox Code Playgroud)
在MainWindow:
pageHome.SomethingHappened += new EventHandler(pageHome_SomethingHappened);
void pageHome_SomethingHappened(object sender, EventArgs e){
MyMethod();
}
Run Code Online (Sandbox Code Playgroud)
小智 5
以下解决方案适用于我从另一个页面调用 MainWindow 函数;
((MainWindow)System.Windows.Application.Current.MainWindow).FunctionName(params);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5814 次 |
| 最近记录: |