我是使用Template10的新手,我正在尝试创建一个在页面之间导航的方法,但是在Template10中,NavigationService只在没有静态方法的情况下工作,如何使用NavigationService of Template10是最好的方法。
这是我的代码,您可以看到它会显示错误,如果删除静态单词,它不会产生任何错误,但是我不能在其他页面中使用。
using Template10.Mvvm;
namespace Project
{
class NavigationUniversalService : ViewModelBase
{
public static void ToCover()
{
NavigationService.Navigate(typeof(Views.Page_Cover));
}
}
}任何帮助都是非常感谢的。
发布于 2016-08-25 09:49:59
但后来我无法在其他页面上使用。
通过创建NavigationUniversalService的新实例,您可以在其他页面中使用此方法。
例如,在我的MainPageViewModel中,我使用了这样的NavigationService:
public void ToCover()
{
App.Current.NavigationService.Navigate(typeof(Views.Page_Cover));
}然后,在其他页面的视图模型中,您可以这样调用这个方法:
MainPageViewModel mainviewmodel = new MainPageViewModel();
mainviewmodel.ToCover();问题是,如果您想通过NavigationService导航,您可以从ViewModelBase继承您的类,然后可以直接使用NavigationService导航,没有必要从其他类调用这个NavigationService。
我的意思是,举个例子:
public class DetailPageViewModel : ViewModelBase
{
public DetailPageViewModel()
{
if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
{
Value = "Designtime value";
}
}
...
public void CallMethodInOtherViewModel()
{
NavigationService.Navigate(typeof(typeof(Views.Page_Cover)); //here!
}
}https://stackoverflow.com/questions/39127728
复制相似问题