unity-container - 如何创建多个不同的外壳
问题描述
我想使用带有 Unity 的 Prism 7.1 编写一个多窗口 WPF 应用程序。主窗口应该包含一些按钮,每个按钮都会打开一个新窗口。
Prism/Unity 中是否有一种内置方式,当用户多次单击按钮时,它只会打开/创建一个窗口,而不是创建新实例?当用户关闭窗口时,单击主窗口中的相应按钮将再次创建一个新的窗口实例。
我知道基于视图的导航允许导航到现有视图(这基本上可以在视图级别上解决问题)。但是视图被注入到区域中,区域在外壳中定义,据我了解,外壳是顶级窗口。那么如何从一个 shell 导航到一个新 shell?
解决方案
Prism/Unity 中是否有一种内置方式,当用户多次单击按钮时,它只会打开/创建一个窗口,而不是创建新实例?
不,因为它们都没有提供任何首先打开或创建窗口的方法。
话虽如此,创建一个创建新窗口并且在再次调用时什么都不做的服务是微不足道的。将该服务注册为单例,将其注入到您的视图模型中,您就完成了。
推荐阅读
- c# - 你见过在 JavaScript SPA 中使用没有 MVC 的 Razor 吗?
- android - 材料设计库提供的FAB如何添加阴影?
- mongodb - 如何遍历 MongoDB 中的嵌套文档并返回子树?
- php - PHP 内爆数组以创建查询
- python - 相同的变量名称但在两个单独的“def”函数中具有不同的值。他们不能以某种方式更改代码吗?
- angular - 如何在Angular 2+的属性/属性绑定中放置一个变量?
- reactjs - 使用来自 axios 的响应更新 useContext
- c# - C#如何将变量用作键值字符串数组的对象列表对象构造函数中的属性名称
- jquery - 将文本添加到 jQuery (this).text
- python - 将列表中的项目与包含列表的列中的项目匹配