问题 1
我知道有一种方法可以使用InteractionRequestTrigger、PopupWindowAction和InteractionRequest打开带有自定义视图的弹出对话框。但我正在寻找解决方案,例如注册 Window 和 WindowViewModel 进行导航并调用INavigationAsync.Navigate("SomeWindowUri", someParameters)。这似乎更简单,更清洁的解决方案。Prism 是否支持这种方法?
问题2
我有要从 MainWindow 显示的主窗口 (MainWindow) 和新窗口 (NewWindow)。我正在尝试在 NewWindow 中定义的区域中显示一些视图。当我使用 IRegionManager.RegisterViewWithRegion 时,它按预期工作。但是当我显示 NewWndow 然后调用 IRegionManager.RequestNavigate 时没有任何反应。当区域在 MainWindow 中时,IRegionManager.RequestNavigate 方法按预期工作。是我的错误还是 Prism 无法在单独的窗口中进行导航?
下面是一个例子:https ://bitbucket.org/equo/prismregionnavigationtest.git 这是 WPF 的 Prism 示例的修改示例:17-BasicRegionNavigation。打开新窗口后,单击任何按钮时没有任何反应,但下面应显示 ViewA 或 ViewB。在 App.CreateShell 方法中取消注释 MainWindow1 后,窗口按预期工作。
根据问题 1: Prism 团队正在开发新的对话服务,这正是我想要的。https://github.com/PrismLibrary/Prism/pull/1682已经可以通过prism预览版获得。
根据问题 2:要使其工作,需要创建作用域区域并将其附加到新创建的窗口。
_ScopedRegion = _RegionManager.CreateRegionManager();
RegionManager.SetRegionManager(newWindow, _ScopedRegion);
然后使用它在新窗口中导航。
_ScopedRegion.RequestNavigate("NewRegion", "ViewA");
演示在这里:https : //bitbucket.org/equo/prismregionnavigationtest.git
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句