1
1
编写一个封装所需逻辑的服务,并将该服务打包到模块中。然后让其他模块使用该服务来完成它们的工作。请注意,服务可能会直接公开文件名,或者选择公开在底层文件上操作的操作,而不让使用者知道所述文件。 |
2
1
创建一个负责返回“选定文件名”的界面。与大多数服务/依赖项不同,它不会做很多处理——它只是负责返回一个值。使用依赖注入将此服务的实现者提供给所有需要它的地方。 目前,这个文件名似乎是真正的全局性的,但是想象一下你的应用程序必须从SDI转换到MDI。在复合应用程序中使用真正的单件并不是一个好主意。 |
3
0
谢谢你两个答案,看起来都很好。早上跑步时,我想出了第三种方法,我想我要试试这个方法: 我在启动时加载复合WPF应用程序中的所有模块,并且只激活最初显示的视图。所以,我的所有模块,即使是未显示的模块,都可以在启动完成后立即使用。 初始化后,需要文件路径的每个模块都将订阅prism事件聚合器中的fileopened复合事件。当从shell打开文件时,shell视图模型将发布一个file opened复合事件。复合事件将把文件路径作为其有效负载。 因此,当shell视图模型发布fileopened事件时,prism事件聚合器将调用每个模块中适当的回调方法,并将文件路径传递给每个模块的视图模型。 |
scottyaim · Xamarin窗体、棱柱体和工具栏项? 6 年前 |
gr1d3r · MVVM-从视图模型关闭窗口 7 年前 |
Bigeyes · 将数据传递给父视图--视图之间的通信 7 年前 |
Bishoy · 处理冗长的异步任务并通知用户 7 年前 |