gpt4 book ai didi

wpf - WPF中对MVVM的一句话解释?

转载 作者:行者123 更新时间:2023-12-03 07:52:16 25 4
gpt4 key购买 nike

我听说它是​​构建 WPF UI 的下一个最好的东西,但所有现有的
示例有几十行代码 - 我可以得到一个 Hello World
对于 MVVM,它毫不含糊地解释了它的全部内容?
我对 C#/.net 也很陌生,所以也许可以指点我一些
也可以提供帮助的资源?

非常感激!

最佳答案

一句话解释:

MVVM 是对深受喜爱的 Model-View-Presenter (MVP) 模式的重新构想,该模式旨在与 WPF 提供的数据绑定(bind)工具一起工作,以将应用程序逻辑与 UI 设计分离。

更长,更有用的解释:

MVVM 的基本概念是将 WPF 应用程序分解为单独的组件,每个组件在获取屏幕信息的过程中都有一个职责。

首先你有模型。这是一个功能非常有限的类,通常从一些外部源(如数据库或 Web 服务)填充。例如:

public class MessageModel
{
public string Message { get; set; }
}

最重要的是,您将 ViewModel 分层,这是应用程序逻辑所在的位置,它通知 View 模型的更改并确保数据一致性。通过实现 INotifyPropertyChanged 接口(interface),WPF 免费提供了 ViewModel 和 View 之间的两种数据绑定(bind)方式:
public class MessageViewModel : INotifyPropertyChanged
{
private MessageModel _model;

public string Message
{
get { return _model.Message; }
set
{
if (_model.Message != value)
{
_model.Message = value;
OnPropertyChanged("Message");
}
}
}
}

最后你有 View 。这是一个 xaml 文件,描述了用于在 ViewModel 中显示和编辑数据的控件的布局:
<Canvas>
<TextBox Text={"Binding Message"} />
</Canvas>

您进行所有这些工作的原因是模型非常轻量级,并且很容易跨域边界传递。从 Web 服务发送或接收数据或将其映射到数据库表很简单。另一方面,ViewModel 很复杂,但几乎没有依赖关系——它不关心模型从哪里获取数据,只关心它在那里并且根本没有 View 的概念,这使得它非常可测试(您的应用程序的逻辑不依赖于 UI 进行测试)。最后,xaml 被很好地划分,可以交给不需要了解应用程序逻辑的设计人员,只需要 ViewModel 以特定名称呈现特定数据。这种封装使得在大型项目中定义角色变得非常容易,或者将有限的 UI 放在一起来测试逻辑,同时完善真实的逻辑。

关于wpf - WPF中对MVVM的一句话解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153147/

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