我在理解有关 MVVM 的某些方面时遇到了问题。我的应用程序依赖于某些事情的对话。问题是,这些子窗口应该从哪里来?根据 MVVM, View 模型应该只包含业务逻辑并且对 UI 的实际知识为零。但是,考虑到它们是 UI 元素,我应该从其他什么地方调用我的子窗口?
这不会在元素之间创建紧密耦合吗?
最佳答案
由于您使用 Prism 标记了问题,我将建议我过去使用 Prism 完成的方法。将 IEventAggregator 注入(inject)您的 ViewModel,然后当您想要弹出对话框时,发布“ShowDialogEvent”或类似的东西。然后,有另一个名为“DialogModule”或其他的模块,它在初始化时订阅该事件,并显示对话框。此外,如果您想将数据传回原始 ViewModel,请让对话框的 ViewModel 发布一个“DialogCloseEvent”或类似的东西,其中包含您需要的数据负载。然后,您可以在主 ViewModel 中订阅该事件。
关于c# - MVVM 中的子窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3061023/