这个问题与MVVM模式有关,我可以在这个论坛上获得快速,良好的答案,因此我想问一下并清除我对模式的困惑。

我对MVVM方法很陌生。我赞赏这种模式并了解其背后的原理。也许我对这种模式没有做太多的工作,这就是为什么会有一些困惑的原因。

如果有一种情况,我想使用XAML动态加载WPF页面的很少部分,并且仍然希望与MVVM方法兼容。

困惑是:


使用XAML动态加载视图的逻辑所在。
我应该为WPF页面使用单个ViewModel还是每个单独的部分都有自己的ViewModel,并与其他ViewModel类进行交互。
如果必须使用自身背后的代码中的C#代码来构建显示在GUI上的控制树该怎么办。
对于使用代码创建的控件,我应该在视图本身的代码背后进行命令绑定。

最佳答案

模式本身并没有真正解决加载逻辑的问题。 Ward Bell对此有一个有趣的blog post。有很多方法可以给这只猫换皮,并且它们都与MVVM兼容。我知道,这并不是您真正想要的答案,但是说实话:)。查看Ward的博客文章...您将对该主题进行更深入的讨论。

至于页面是否具有单个VM或每个控件具有一个VM,这取决于。通常,我有一个页面。如果有一部分可以在其他地方重用,则可以将其分解为带有自己的VM的用户控件,这意味着我们在VM中有一个VM。在这一点上,我不同意rockeye。 V-VM-M之间没有一对一的关系。您的模型是根据业务需求设计的,完全不用考虑外观。您是ViewModel,是根据您的演示文稿需求设计的,并且可以封装多个Model。实际上,封装很多模型对于他们来说是很普遍的。

像rockeye,我不明白你的最后一个问题。

07-24 09:38
查看更多