我来自西班牙,叫Jesús,是一名.NET开发人员,几天前刚发现了这个很棒的网站。
我有一些关于MVVM模式的问题,如果您能回答它们,我会很高兴。
我三个月前开始使用WPF,并学习了MVP模式。
MVP非常好,因为它可以很好地构建应用程序。
我开始在各处看到MVVM,但每个人都按自己的方法使用该模式。
每个博主都在他们的WPF博客中谈论MVVM,但每个实现都不同。
我现在专注于使用MVVM工具包的实现,但我有问题,找不到太多信息。
我认为MVVM是MVP的变体。
对于MVP,每个视图都有一个执行视图工作的Presenter。
在MVVM中,也是这样,但尽可能使用命令。
我还发现,如果需要事件,就像在MVP中一样,将事件委托给Presenter / View-Model,这样做不是视图的工作(例如更新UI)。
另一方面,View-Model没有View引用,所以我必须更努力地使用数据绑定。
您必须使用DelegateCommands(与RelayCommands相同,对吗?)。
嗯...还有更多问题...使用同一个View-Model在两个视图/用户控件中是否安全?
哦...昨天我在玩MVVM时遇到了一个问题。
我为键绑定事情创建了一个CommandReference,并将此引用分配给我的按钮的命令属性,好吧,CanExecuted第一次起作用,但当CanExecuted为true时它没有更新IsEnabled属性。我通过直接将命令绑定到按钮而不是使用引用来解决了这个问题。问题是:为什么有些代码将引用链接到对象,而其他代码直接绑定命令?
我应该学习哪些与MVVM相关的东西?(昨天我看到了一些称为附加行为的东西,但我不知道那是什么)。
我正在重写一个笔记应用程序,我使用MVP开发了它,但现在使用MVVM。我将使用DelegateCommand将事件替换为命令,消除View-Model上的视图引用,我认为这就是全部,因为我看到的MVVM示例非常像MVP。
好的,如果您能指出我对这种模式的所有误解,我会很感激。
谢谢,在未来我也会帮助下一个MVVM新手 :)