嗯,这个问题与 MVVM 模式相关,我可以在这个论坛上快速得到答案,所以我想询问并消除我对该模式的困惑。
我对 MVVM 方法还很陌生。我欣赏这种模式并了解其背后的原理。也许我没有对这个模式进行太多的研究,这就是为什么会有一些困惑。
如果有一种情况,我想使用 XAML 动态加载 WPF 页面的几个部分,并且仍然希望符合 MVVM 方法。
令人困惑的是:
- 使用 XAML 动态加载视图的逻辑驻留在其中。
- 我是否应该为我的 WPF 页面使用单个 ViewModel,或者每个单独的部分都拥有自己的视图模型并与其他视图模型类进行交互。
- 如果我必须在代码隐藏本身中使用 C# 代码构建显示在 GUI 上的控制树,该怎么办?
对于使用代码创建的控件,我应该在视图本身的代码隐藏中执行命令绑定。
加载逻辑的去向并不是模式本身真正解决的问题。有一个有趣的博客文章 http://neverindoubtnet.blogspot.com/2009/05/birth-and-death-of-m-v-vm-triads.html沃德·贝尔 (Ward Bell) 对此进行了介绍。给这只猫剥皮的方法有很多种,而且它们都与 MVVM 兼容。我知道,这并不是您正在寻找的答案,但它是诚实的:)。查看沃德的博客文章...您将获得有关此主题的更深入的讨论。
至于是否为页面配备一个虚拟机,或者为每个控件配备一个虚拟机,这取决于具体情况。一般来说,我有一个页面。如果有某些部分可以在其他地方重用,我会将其分解为具有自己的虚拟机的用户控件,这意味着我们在虚拟机中拥有虚拟机。在这一点上我不同意rockeye的观点。 V-VM-M 之间不存在一对一的关系。您的模型是根据业务需求设计的,根本不考虑演示。您的 ViewModel 是根据您的演示需求而设计的,并且可能封装多个 Model。事实上,它们封装许多模型是很常见的。
就像rockeye一样,我不明白你最后一个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)