WPF_MVVM_入门教程

WPF_MVVM_入门教程

ID:46940681

大小:345.14 KB

页数:11页

时间:2019-11-30

WPF_MVVM_入门教程_第1页
WPF_MVVM_入门教程_第2页
WPF_MVVM_入门教程_第3页
WPF_MVVM_入门教程_第4页
WPF_MVVM_入门教程_第5页
资源描述:

《WPF_MVVM_入门教程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、作者:BarryLapthorn假如你对C#已经有了比较好的了解,那么学习WPF不会太难。我学习WPF已经有一段时间了,但一直没有找到比较好的MVVM教程。希望这篇文章能达到这个目的。在学习任何技术之前,你都会想知道“学了有什么好处”。在我看来,我看到的几乎所有的WPF教程都会有以下的一个或多个不足:1.示例都是用XAML表示。2.示例掩盖了那些可以让你使用起来更加方便的主要功能。3.示例试图通过一些根本没什么用的知识点来炫耀WPF/XAML的技巧。4.xxx所以,为了处理这些问题,我写了这篇文章,基于那篇在Google里输入“WP

2、FTutorial”而得到的第一篇文章。这篇文章也许不是100%正确,或者不是“唯一解”,但它将讲明我在6个月前得到的体会的主要思想。我会先快速地介绍一些主题,然后通过一个示例来解释或证明每一个要点。因此,我不想试图让GUI很漂亮,那不是本文的重点。Note:由于这篇教程特别的长,为了简洁,我省略了很多代码,所以,为了更好的理解这文章,请下载zip代码包。运行环境(.net4.0/vs2010)。基本要点:1.WPF中,最重要的就是数据绑定(databinding)。通常,你有一些数据集合,你想要显示给用户,你就可以将数据绑定到XA

3、ML2.WPF有两部分,XAML部分是描述你的GUI和特效,code-behind部分的.cs代码用来联系XAML3.最优雅同时也可能是最大限度地复用你的代码的方式就是使用‘MVVM’模式:Model,View,ViewModel。这个的目标就是确保你的View中cs代码最小化,应该都以XAML的形式来显示。你要知道的主要知识点:1.用来存储你的数据的集合是ObservableCollection<>.而不是list,也不是dictionary,但可以是ObservableCollection。单词“Observable(可观察的)

4、”就是这里的主线:WPF窗口要有‘观察’你数据集合的能力。集合类要实现一些WPF要使用的必要接口。2.每一个WPF控件都有一个DataContext以及集合控件拥有一个ItemsSource属性。3.INotifyPropertyChanged接口将会在GUI与你的代码要传输数据时,大量的使用。示例1:先做错之(大部分)示例是开始的最好方式。我们将通过一个Song类来开始,而不是常用的Person类。我们可以将歌曲(Song)整理到唱片(Album)中,或者一个更大的集合,或者以艺术家(Artist)的方式来整理。以下是一个简单的S

5、ong类:publicclassSong{#regionMembersstring_artistName;string_songTitle;#endregion#regionProperties///Theartistname.PublicstringArtistName{get{return_artistName;}set{_artistName=value;}}///Thesongtitle.publicstringSongTitle{get{return_songTitle;}set{_songTitle=value;}}#e

6、ndregion}在WPF术语中,这就是我们的‘Model’,GUI就是我们的‘View’。神奇的地方在于,对它们俩之间进行数据绑定的是’ViewModel’,就是这个适配器,可以将我们的Model转化为WPF框架可以识别的东西。再次重申,这个Song类就是我们的’Model’。由于我们创建的Song类是引用类型,在内存中进行复制是非常的轻便而且代价很低。我们可以也可以非常容易的创建我们的SongViewModel。然后,我们第一步要思考的是:我们要(可能)显示什么?假设我们只关心歌曲(song)的表演者,而不是歌曲名,那我们的So

7、ngViewModel就可以这样定义:publicclassSongViewModel{Song_song;publicSongSong{get{return_song;}set{_song=value;}}publicstringArtistName{get{returnSong.ArtistName;}set{Song.ArtistName=value;}}}由于我们暴露了一个property在我们的ViewModel中,所以我们要显式地对song的表演者(ArtistName)对进行一个改变。通过以下代码:SongViewMo

8、delsong=...;//...enablethedatabinding...//changethenamesong.ArtistName="Elvis";//theguishouldchange在这里,我们通过声明的方式来创建vi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。