Jes*_*uez 3 c# wpf design-patterns mvvm
我的名字是来自西班牙的Jesús,我是一名.NET开发人员,几天前我刚刚发现了这个伟大的网站.
我对MVVM模式有一些疑问,如果你能回答它我会很高兴.
三个月前我开始使用WPF,我已经学会了MVP模式.
MVP非常好,因为您可以很好地构建应用程序.
我开始在各处看到MVVM,但每个人都在用他自己的方法使用这个模式.
每个博主都在他们的WPF博客中讨论MVVM,但每个实现都是截然不同的.
我现在关注在CodePlex上使用MVVM工具包的实现,但我有疑问,我找不到太多信息.
我认为MVVM是MVP的变种.
使用MVP,每个视图都有一个执行视图工作的演示者.
在MVVM中,它是相同的,但只要你可以使用命令.
我也看到如果你需要一个活动,就像MVP一样; 将事件委托给演示者/视图模型,即它不是视图的作业(例如更新UI).
另一方面,View-Model没有View引用,因此我必须更加努力地使用数据绑定.
您必须使用DelegateCommands(与RelayCommands相同,对吧?).
嗯...更多问题......使用具有两个视图/用户控件的相同View模型是否安全?
哦......昨天我在玩MVVM时遇到了问题.
我创建了一个CommandReference用于键绑定的命令,我将此引用分配给了我的按钮的命令属性,嗯,CanExecuted第一次工作但是IsEnabled当它CanExecuted为真时它没有更新属性.我通过将命令直接绑定到按钮而不使用引用来修复它.问题是:为什么有些代码将引用链接到对象以及为什么其他代码直接绑定命令?
我应该学习哪些与MVVM有关的东西?(昨天我看到一些叫做附加行为的东西,但我不知道那是什么).
我正在重写我使用MVP开发的注释应用程序,但现在使用MVVM.我将替换命令的事件(使用DelegateCommand),消除对视图模型的参考意见,我认为这都是因为,我看到MVVM的例子是很像MVP.
好吧,如果你指出我对这种模式的所有误解,我将不胜感激.
谢谢你,将来我会帮助下一个MVVM新手:)
Mic*_*ows 12
哇,我会尝试回答尽可能多的问题,尽可能不涉及特定的技术或框架...对不起,如果我错过了一些(子弹点有帮助)
重要的是要记住,虽然MVVM适合解决采用WPF带来的问题,但它不是特定于技术的模式.如果你在没有理解基础哲学的情况下深入研究具体的实现,你可能会在早期犯下一些非常大的错误,并且只有在为时已晚之后才发现它们.不幸的是,MVVM并不是一个记录良好的模式,当你说每个人都有自己的想法时,你是对的.
它不是一种革命性的模式(它在不同的名称下已存在多年),但WPF的数据绑定使其成为现在可行的解决方案,因此它正在享受新的普及.这是一个很好的模式,但它不是学说.用适当的怀疑态度来处理你面临的每一个"指令".
编辑
@micahtan在说明数据绑定是WPF中非常重要的部分时是正确的.我说WPF的数据绑定支持MVVM解决方案,但绑定本身非常强大,这就是为什么MVVM的采用速度比围绕它的文献更快.