wpf - 将 View 注入(inject)容器 MVVM WPF

标签 wpf mvvm cinch

这让我痛苦了一段时间。

我知道 Prism 将 View 注入(inject)到区域中,但是有没有办法在 View 优先的基础上对 Cinch 做类似的事情?例如,我有一个容器(实际上是一个区域),它可以在运行时包含任何 View ——我不想在 XAML 中显式设置 View ,因为这会加载它,而且有点困惑。有没有我可以用来做这个的容器?我该怎么做呢? (不必特定于 Cinch ..)

谢谢。

最佳答案

为了回答我自己的问题,我发现 Prism v4 提供了一个有用的解决方案 - 一个名为 RequestNavigate 的 RegionExtension。

我使用 RequestNavigate 打开一个新窗口(查看 StockTrader RI),但是如果遵循正确的 MVVM 方法,这似乎非常麻烦。相反,我决定使用 WPF 扩展工具包中的 ChildWindow 类,您可以在其中纯粹绑定(bind)到“WindowState”(打开/关闭)属性,并在 XAML 中指定其他所有内容。

我还使用 RequestNavigate 将 View 注入(inject)区域 - 我现在使用 MEF(当时我使用 Unity)。我发现这种方法更加灵活,即使在调试方面有点“神奇”。

关于wpf - 将 View 注入(inject)容器 MVVM WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514486/

相关文章:

wpf - 如何根据另一个样式属性设置样式属性值?

c# - 使全屏 wpf 应用程序在所有分辨率下看起来都一样

c# - MVVMLight 具有对应 View 的多个实例键控 View 模型

wpf - 在 WrapPanel 中同步 WPF 控件宽度

c# - 从 DataContext 中删除一个项目并在没有 SaveChanges() 的情况下显示更新的值

c# - ReactiveUI加载时执行命令

c# - CinchV2 中的模型发生了什么?

wpf - 异步在MVVM中添加标签

wpf - MVVM:仅在数据有效时使绑定(bind)更新 ViewModel

html - 将 HTML 片段插入 WPF FlowDocument