C# 如何从另一个Windows Phone页面访问公共方法
是否有较短的方法从其他windows phone页面(例如从C# 如何从另一个Windows Phone页面访问公共方法,c#,silverlight,windows-phone,C#,Silverlight,Windows Phone,是否有较短的方法从其他windows phone页面(例如从MainPage.xaml)访问公共方法 ((MainPage)(((System.Windows.Controls.ContentControl)(App.RootFrame)).Content)).getMyPublicMethod() 据我所知,这是唯一的办法。但是您可以创建一个包装器来缩短访问该页面的语法。例如,方法包装器: public MainPage getMainPage() { return (MainPag
MainPage.xaml
)访问公共方法
((MainPage)(((System.Windows.Controls.ContentControl)(App.RootFrame)).Content)).getMyPublicMethod()
据我所知,这是唯一的办法。但是您可以创建一个包装器来缩短访问该页面的语法。例如,方法包装器:
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();
或属性包装器:
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();
如果您以现在的方式实施它,您的关注点分离将非常糟糕。通常情况下,视图(在本例中称为
页面
)不应包含任何触发其他视图中可能需要的操作的功能组件
一个更好的解决方案是使用“轻”方法,在这种方法中,您有一个核心视图模型,然后简单地从中调用操作,将必要的数据从一个视图传递到另一个视图。我已经描述了一个基本的实现