使用带框架控制的 Prism NavigationService 赢得通用应用程序
Win universal app using Prism NavigationService with Frame control
Prism NavigationService如何与Frame控件结合使用?
我有一个包含框架的主页。首先,我必须导航到主页,然后我想更改 NavigationSerices 以便它使用框架而不是整个页面。
所以我需要 Windows-Store-App-Prism 框架中的 Prism 5.0 区域之类的东西。
类似的问题已经解决:Register Navigation Service to Frame Element and NOT the page - WinRt Prism 2.0
但我不喜欢这个解决方案。
解决方法:在继承自MvvmAppBase的App.xaml.cs中添加:
public static App Instance { get { return _instance; } }
private Type Resolve(string name)
{
return Type.GetType(string.Format("{0}.Views.{1}Page", this.GetType().Namespace, name));
}
public void CreateNewNavigationFrame(Frame frame)
{
this.NavigationService = new FrameNavigationService(new FrameFacadeAdapter(frame), Resolve, this.SessionStateService);
}
在主页面(Frame所在页面)的构造函数中:
public AppShellPage()
{
this.InitializeComponent();
App.Instance.CreateNewNavigationFrame(this.frame);
}
Prism NavigationService如何与Frame控件结合使用? 我有一个包含框架的主页。首先,我必须导航到主页,然后我想更改 NavigationSerices 以便它使用框架而不是整个页面。
所以我需要 Windows-Store-App-Prism 框架中的 Prism 5.0 区域之类的东西。
类似的问题已经解决:Register Navigation Service to Frame Element and NOT the page - WinRt Prism 2.0 但我不喜欢这个解决方案。
解决方法:在继承自MvvmAppBase的App.xaml.cs中添加:
public static App Instance { get { return _instance; } }
private Type Resolve(string name)
{
return Type.GetType(string.Format("{0}.Views.{1}Page", this.GetType().Namespace, name));
}
public void CreateNewNavigationFrame(Frame frame)
{
this.NavigationService = new FrameNavigationService(new FrameFacadeAdapter(frame), Resolve, this.SessionStateService);
}
在主页面(Frame所在页面)的构造函数中:
public AppShellPage()
{
this.InitializeComponent();
App.Instance.CreateNewNavigationFrame(this.frame);
}