WPF&SL之Basic MVVM

简介: 转自http://www.cnblogs.com/itkm/archive/2012/03/30/2425732.html初学MVVM的时候总觉得这玩意老神秘了。然后又莫名其妙的被网络上推荐了Prism框架,搞得乱七八糟,项目差点失去控制。

转自http://www.cnblogs.com/itkm/archive/2012/03/30/2425732.html

初学MVVM的时候总觉得这玩意老神秘了。然后又莫名其妙的被网络上推荐了Prism框架,搞得乱七八糟,项目差点失去控制。其实学习什么东西都要一步一步的来。因此我今天再次老僧长谈。重提此事,为的是期望对后来者有点帮助。及交流下WPF&SL的开发心得。

 

MVVM的定义

网络上的解释是Model-View-ViewModel的缩写,可是对于一个初学者来说,这玩意真有点难以理解。

注:我智商比较低。

下面我们再用白话解释一次:Model-就是模型(简言之就是数据库的表,或者要显示的元素结构)

View-就是UI,就是用户界面,就是XAML文件。最终显示给用户的效果。

ViewModel—就是控制View的对象,或者对应到代码中就是一个Class。该Class包含:Model或者Model的集合,包含View上的命令(Command)

注意:一般来说对Model的操作(换言之对数据对象的操作),一般放在Command中,界面交互的也可以通过CommandParameter等方式进行交互,如果复杂的话,考虑使用在View中控制。

 

这样一个简单的MVVM就OK了

下面写个简单的例子【未调试只是为了说明问题,所以也不带源码】。

XAML:[View]

<Grid x:Name="LayoutRoot">

<TextBlock Text="{Binding StrName,Mode=OneWay}"></TextBlock>

</Grid>

Model[cs]:

public class XXClassModel:NotificationObject//【这个引用可以直接使用using Microsoft.Practices.Prism.ViewModel;】

{

private string strName;

public string StrName

{

get{return strName;}

set{

strName=value;

RaisePropertyChanged("StrName");//通知界面,注意大小写

//这里还可以做更多的操作,也就是对目标属性赋值的时候执行的操作

}

}

}

ViewModel[cs]:

public class XXClassViewModel:NotificationObject

{

public void XXClassViewModel

{

item=new XXClassModel (){StrName="OK"}

}

private XXClassModel item;

public XXClassModel Item

{

get{return item;}

set{

strName=value;

RaisePropertyChanged("Item");//通知界面

//这里还可以做更多的操作,也就是对目标属性赋值的时候执行的操作

}

}

}

再到View.cs的构造函数中写

this.LayeroutRoot.DataContext=new XXClassViewModel();

至此,全部完成!

 

 
目录
相关文章
|
9月前
|
前端开发 C# 开发者
WPF开发者必读:MVVM模式实战,轻松构建可维护的应用程序,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,MVVM(Model-View-ViewModel)模式通过分离关注点,提高了代码的可维护性和可扩展性。本文详细介绍了MVVM模式的三个核心组件:Model(数据模型)、View(用户界面)和ViewModel(处理数据绑定与逻辑),并通过示例代码展示了如何在WPF项目中实现MVVM模式。通过这种模式,开发者可以更高效地构建桌面应用程序。希望本文能帮助你在WPF开发中更好地应用MVVM模式。
449 1
|
8月前
|
设计模式 前端开发 C#
WPF 项目中 MVVM模式 的简单例子说明
本文通过WPF项目中的加法操作示例,讲解了MVVM模式的结构和实现方法,包括数据模型、视图、视图模型的创建和数据绑定,以及命令的实现和事件通知机制。
|
9月前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
234 0
|
9月前
|
前端开发 开发者 C#
WPF开发者必读:MVVM模式实战,轻松实现现代桌面应用架构,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,MVVM(Model-View-ViewModel)模式通过分离应用程序的逻辑和界面,提高了代码的可维护性和可扩展性。本文介绍了MVVM模式的三个核心组件:Model(数据模型)、View(用户界面)和ViewModel(处理数据绑定和逻辑),并通过示例代码展示了如何在WPF项目中实现MVVM模式。通过这种方式,开发者可以构建更加高效和可扩展的桌面应用程序。
434 0
|
9月前
|
设计模式 前端开发 C#
WPF/C#:理解与实现WPF中的MVVM模式
WPF/C#:理解与实现WPF中的MVVM模式
521 0
|
设计模式 开发框架 前端开发
深入理解WPF中MVVM的设计思想
近些年来,随着WPF在生产,制造,工业控制等领域应用越来越广发,很多企业对WPF开发的需求也逐渐增多,使得很多人看到潜在机会,不断从Web,WinForm开发转向了WPF开发,但是WPF开发也有很多新的概念及设计思想,如:数据驱动,数据绑定,依赖属性,命令,控件模板,数据模板,MVVM等,与传统WinForm,ASP.NET WebForm开发,有很大的差异,今天就以一个简单的小例子,简述WPF开发中MVVM设计思想及应用。
168 0
|
前端开发 C# 图形学
【.NET6+WPF】WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入
前言:在C/S架构上,WPF无疑已经是“桌面一霸”了。在.NET生态环境中,很多小伙伴还在使用Winform开发C/S架构的桌面应用。但是WPF也有很多年的历史了,并且基于MVVM的开发模式,受到了很多开发者的喜爱。
796 0
【.NET6+WPF】WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入
|
前端开发
WPF-Binding问题-MVVM中IsChecked属性CommandParameter转换值类型空异常
WPF-Binding问题-MVVM中IsChecked属性CommandParameter转换值类型空异常
244 0
|
前端开发 算法 JavaScript
走进WPF之MVVM完整案例
走进WPF之MVVM完整案例
371 0
|
前端开发 C# 数据库
WPF MVVM系统入门-下
本文详细讲解WPF,MVVM开发,实现UI与逻辑的解耦。
350 0