如何从另一个Windows Phone页面访问公共方法

时间:2014-03-15 23:14:57

标签: c# silverlight windows-phone

是否有更短的方式从其他Windows手机页面访问公共方法(例如来自MainPage.xaml),然后呢?

((MainPage)(((System.Windows.Controls.ContentControl)(App.RootFrame)).Content)).getMyPublicMethod()

2 个答案:

答案 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();