c# - MVVM 中的子窗口

标签 c# wpf silverlight mvvm prism

我在理解有关 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/

相关文章:

c# - 模拟非 ASCII 字符的输入

silverlight - 如何在 silverlight 中强制新窗口或标签

silverlight - 提交操作失败 - NotFound from RIA Services with Silverlight 4 on SubmitChanges()

c# - 如何使用 Mock.Of<T>() 模拟没有默认构造函数的类?

c# - 命名空间中不存在 Unity 5.3.3 UI

c# - WPF 组合框悬停更改颜色模板

C#/WPF : KeyBinding not triggering Command

flash - Pixel Bender(在 Flash 中)和像素着色器(在 Silverlight 中)之间的比较

c# - 从 ASP.net 运行 Windows 计划任务

c# - WPF 将多个参数传递给命令