gpt4 book ai didi

c# - WPF项目中MVVM和MVC之间的主要区别是什么?

转载 作者:行者123 更新时间:2023-12-03 10:54:59 24 4
gpt4 key购买 nike

我希望您对MVVM项目和MVC项目之间的主要区别有何意见。我知道MVVM和MVC的基本原理,但我想更详细地了解它们在WPF项目中的区别。

最佳答案

这里的其他答案是关于MVVM的一些好处,但我感到他们无法回答问题。我相信您是在问有关MVC和MVVM之间差异的哲学问题。

以我的经验,MVC中的Controller负责触发 View 和模型上的状态更改。例如,您的View可能具有以下功能:

public void SetupListBox(List<string> items) {...}

或什至更单片的东西,一次提供很多信息:
public void SetupForm(string name, List<string> listItems, string selectedItem) {...}

Controller将显式调用此类型的方法以触发状态更改,而View(在这种情况下)将在方法内更改其状态。

使用MVVM,ViewModel通常以粒度级别公开显示 View 的状态:
public string Name { get {...} set {...} }
public List<string> ListItems { get {...} set {...} }
public string SelectedItem { get {...} set {...} }

ViewModel还负责通知View发生了相关的状态更改。 WPF为此使用INotifyPropertyChanged。

一种思考的方法是ViewModel抽象地表示应该在View中出现的状态。该状态是否实际反射(reflect)在 View 中取决于您实现体系结构的程度。

请注意,MVC和MVVM不是竞争模式。使用MVVM,您仍然需要逻辑来驱动状态更改。关键区别在于该州的居住地。将所有状态更改驱动逻辑直接放入ViewModel中通常是最容易的。较大的应用程序可能需要MVVMC体系结构。

关于c# - WPF项目中MVVM和MVC之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com