是否有更短的方式从其他Windows手机页面访问公共方法(例如来自MainPage.xaml
),然后呢?
((MainPage)(((System.Windows.Controls.ContentControl)(App.RootFrame)).Content)).getMyPublicMethod()
答案 0 :(得分:1)
如果您按照自己的方式实施,那么您的关注点就会非常糟糕。通常,视图(在本例中为Page
)不应在触发另一视图中可能需要的操作方面携带任何功能组件。
更好的解决方案是使用'轻型'MVVM方法,在这种方法中,您拥有核心视图模型,然后只需从中调用操作,将必要的数据从视图传递到视图。我已经描述了一个基本的实现here。
答案 1 :(得分:-1)
据我所知,这是唯一的方法。但是您可以创建一个包装器来缩短语法以访问该页面。例如,方法包装器:
public MainPage getMainPage()
{
return (MainPage)(((System.Windows.Controls.ContentControl)(App.RootFrame)).Content);
}
//usage :
getMainPage().getMyPublicMethod();
或属性包装器:
public MainPage OtherWindow
{
return (MainPage)(((System.Windows.Controls.ContentControl)(App.RootFrame)).Content);
}
//usage :
OtherWindow.getMyPublicMethod();