- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 2
作者:
Barry Lapthorn
假如你对C#已经有了比较好的了解,那么学习WPF不会太难。我学习WPF已经有一段时间了,但一直没有找到比较好的MVVM教程。希望这篇文章能达到这个目的。
在学习任何技术之前,你都会想知道“学了有什么好处”。在我看来,我看到的几乎所有的WPF教程都会有以下的一个或多个不足:
示例都是用XAML表示。
示例掩盖了那些可以让你使用起来更加方便的主要功能。
示例试图通过一些根本没什么用的知识点来炫耀WPF/XAML的技巧。
xxx
所以,为了处理这些问题,我写了这篇文章,基于那篇在Google里输入“WPF Tutorial”而得到的第一篇文章。这篇文章也许不是100%正确,或者不是“唯一解”,但它将讲明我在6个月前得到的体会的主要思想。
我会先快速地介绍一些主题,然后通过一个示例来解释或证明每一个要点。因此,我不想试图让GUI很漂亮,那不是本文的重点。
Note:由于这篇教程特别的长,为了简洁,我省略了很多代码,所以,为了更好的理解这文章,请下载zip代码包。运行环境(.net 4.0 / vs 2010)。
基本要点:
WPF中,最重要的就是数据绑定(data binding)。通常,你有一些数据集合,你想要显示给用户,你就可以将数据绑定到XAML
WPF有两部分,XAML部分是描述你的GUI和特效,code-behind部分的.cs代码用来联系XAML
最优雅同时也可能是最大限度地复用你的代码的方式就是使用‘MVVM’模式:Model, View, ViewModel。这个的目标就是确保你的View中cs代码最小化,应该都以XAML的形式来显示。
你要知道的主要知识点:1. 用来存储你的数据的集合是ObservableCollection.而不是list,也不是dictionary,但可以是ObservableCollection 。单词“Observable(可观察的)”就是这里的主线:WPF窗口要有‘观察’你数据集合的能力。集合类要实现一些WPF要使用的必要接口。
2. 每一个WPF控件都有一个DataContext以及集合控件拥有一个ItemsSource属性。
3. INotifyPropertyChanged 接口将会在GUI与你的代码要传输数据时,大量的使用。
示例1:先做错之(大部分)
示例是开始的最好方式。我们将通过一个Song类来开始,而不是常用的Person类。我们可以将歌曲(Song)整理到唱片(Album)中,或者一个更大的集合,或者以艺术家(Artist)的方式来整理。以下是一个简单的Song类:
public class Song
{
#region Members
string _artistName;
string _songTitle;
#endregion
#region Properties
/// The artist name.
Public string ArtistName
{
get { return _artistName; }
set { _artistName = value; }
}
/// The song title.
public string SongTitle
{
get { return _songTitle; }
set { _songTitle = value; }
}
#endregion
}
在WPF术语中,这就是我们的‘Model’,GUI就是我们的‘View’。神奇的地方在于,对它们俩之间进行数据绑定的是’ViewModel’,就是这个适配器,可以将我们的Model转化为WPF框架可以识别的东西。再次重申,这个Song类就是我们的’Model’。
由于我们创建的Song类是引用类型,在内存中进行复制是非常的轻便而且代价很低。我们可以也可以非常容易的创建我们的SongViewModel。然后,我们第一步要思考的是:我们要(可能)显示什么?假设我们只关心歌曲(song)的表演者,而不是歌曲名,那我们的SongViewModel就可以这样定义:
public class SongViewModel
{
Song _song;
public Song Song
{
get
您可能关注的文档
最近下载
- 《项目现场管理组织机构图及人员职责.doc VIP
- 2025年9月13日河北地级市遴选笔试真题及解析.docx VIP
- 1315002-0000-e0_生物化学需氧量(BOD5)测定仪通用技术规范.doc VIP
- 视频号0粉开播的3大技巧.docx VIP
- 2025年陕西电信校园招聘笔试备考试题及答案解析.docx VIP
- 部编版九年级语文上册艾青诗选PPT课件.pptx VIP
- 1405031-32-0000-00_±400~±800kV直流盘形悬式瓷(玻璃)复合绝缘子通用技术规范.doc VIP
- 2802003-0000-00-新一代高可靠变电站辅助设备采购技术规范(通用部分).docx VIP
- 2025年福建电信校园招聘笔试备考试题及答案解析.docx VIP
- 9014001-0000-00-劳务分包服务采购范本(第1部分:通用技术规范).docx VIP
文档评论(0)