将视图注入容器MVVM WPF

时间:2010-08-18 16:45:39

标签: wpf mvvm cinch

这让我痛苦了一段时间。

我知道Prism会在区域中注入视图,但是有没有一种方法可以在Cinch上进行类似的事情,首先是基于视图?例如,我有一个容器(实际上是一个区域),它可以在运行时包含任何视图 - 我不特别想在XAML中显式设置视图,因为这会加载它,而且它有点乱。我可以使用容器吗?我该怎么办呢? (不一定是Cinch特定的..)

感谢。

1 个答案:

答案 0 :(得分:1)

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

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

我还使用RequestNavigate将视图注入区域 - 我现在正在使用MEF(当时我正在使用Unity)。我发现这种方法更灵活,如果对调试有点“魔力”。