我听说它是构建WPF UI的下一个最好的东西,但是所有现有的例子都有几十行代码--我能得到一个MVVM的Hello World吗,它明确地解释了它的全部内容?我也是C#/.net的新手,所以也许可以给我一些有用的参考资料?
非常感谢!
发布于 2009-07-20 12:17:19
一句话解释:
MVVM是对广受欢迎的模型-视图-展示者( Model-View-Presenter,MVP)模式的重新构想,旨在与WPF提供的数据绑定工具很好地配合使用,从而将应用程序逻辑与UI设计分开。
更长,更有用的解释:
MVVM的基本概念是将WPF应用程序拆分成单独的组件,每个组件在屏幕上获取信息的过程中都有一个职责。
首先,你有一个模型。这是一个功能非常有限的类,通常是从一些外部源填充的,例如数据库或very服务。例如:
public class MessageModel
{
public string Message { get; set; }
}在此基础上,对ViewModel进行分层,这是应用程序逻辑所在的位置,它通知视图模型的更改并确保数据一致性。通过实现INotifyPropertyChanged接口,实现了ViewModel与视图之间的双向数据绑定。
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>之所以要进行所有这些工作,是因为模型是非常轻量级的,很容易跨域边界传递。从map服务发送或接收它或将其映射到数据库表都很简单。另一方面,ViewModel很复杂,但几乎没有依赖关系-它不关心模型从哪里获取数据,只关心它在哪里,而且它根本没有视图的概念,这使得它非常可测试(应用程序的逻辑不依赖于UI来测试)。最后,xaml被很好地划分,并且可以交给不需要了解应用程序逻辑的设计人员,只需要知道ViewModel将以特定的名称呈现特定的数据。这种封装使得在大型项目中定义角色变得非常容易,或者将有限的UI放在一起来测试逻辑,而实际的UI正在被打磨。
发布于 2010-02-07 16:44:10
MVVM是一种明星-粉丝关系。粉丝认识明星,但明星不认识粉丝。粉丝非常爱他的明星,如果明星改变了自己(我指的是他的着装风格),粉丝也会相应地改变自己。
现在用"ViewModel“替换"star”,用"View“替换"fan”,再读一遍。
发布于 2009-07-20 12:16:54
一句话?开始吧。
MVVM是一种UI分离模式,其中Xaml (视图)绑定到外观(视图模型),允许程序(模型)的内部避免UI问题泄漏到层中。
https://stackoverflow.com/questions/1153147
复制相似问题