首页 > 解决方案 > 如何创建多个不同的外壳

问题描述

我想使用带有 Unity 的 Prism 7.1 编写一个多窗口 WPF 应用程序。主窗口应该包含一些按钮,每个按钮都会打开一个新窗口。

Prism/Unity 中是否有一种内置方式,当用户多次单击按钮时,它只会打开/创建一个窗口,而不是创建新实例?当用户关闭窗口时,单击主窗口中的相应按钮将再次创建一个新的窗口实例。

我知道基于视图的导航允许导航到现有视图(这基本上可以在视图级别上解决问题)。但是视图被注入到区域中,区域在外壳中定义,据我了解,外壳是顶级窗口。那么如何从一个 shell 导航到一个新 shell?

标签: unity-containerprism

解决方案


Prism/Unity 中是否有一种内置方式,当用户多次单击按钮时,它只会打开/创建一个窗口,而不是创建新实例?

不,因为它们都没有提供任何首先打开或创建窗口的方法。

话虽如此,创建一个创建新窗口并且在再次调用时什么都不做的服务是微不足道的。将该服务注册为单例,将其注入到您的视图模型中,您就完成了。


推荐阅读