MyException - 我的异常网
当前位置:我的异常网» 软件架构设计 » MVVM架构-入门与增高(逐步完善版本)

MVVM架构-入门与增高(逐步完善版本)

www.MyException.Cn  网友分享于:2013-02-21  浏览:32次
MVVM架构----------入门与提高(逐步完善版本)

MVVM架构入门与提高

1.本文介绍:

因最近做了一个小程序(屠宰场轨道屠宰计划控制程序)中用到了WF和WPF混合技术,没有进行代码设计模式的应用,所以有意向想把此程序重写,所以学习了MVVM;本博客是根据视频教程中的内容进行局部总结,如果有漏下的还请读者给予留言,一起完善和学习。视频时长2小时40分,总共5段视频,如果你会MVVM的可以一起把5段视频一期看完,如果不会的我个人觉得可以慢慢来看,不可以当电影来看,这样你看了以后又忘记了,而且也不易于理解和掌握。下面进入正题。

2.所需资源:

1.视频地址

Prism For Wpf 4.x
MVVM入门与提高_Vedio.part01.rar
MVVM入门与提高_Vedio.part02.rar
MVVM入门与提高_Vedio.part03.rar
MVVM入门与提高_Vedio.part04.rar
MVVM入门与提高_Vedio.part05.rar
MVVM入门与提高_Vedio.part06.rar
MVVM入门与提高_Vedio.part07.rar

3.视频观后总结

1.Code Snippet

学会使用Code Snippet 可以有效的提高代码的书写速度。查看Code Snippet的方法如下:
选择"菜单栏"==>工具(T)==>代码段管理器==>语言选择(Visual C#)==>查看说明找到 .snippet文件的存储目录如下:
C:\\Program Files\Microsoft Visual Studio 11.0\VC#\Snippets\2052\Visual C#\

a.打开一个snippet文件

以propfull.snippet文件为例源码如下:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>propfull</Title>
<Shortcut>propfull</Shortcut>
<Description>属性和支持字段的代码段</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>属性类型</ToolTip>
<Default>int</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>属性名</ToolTip>
<Default>MyProperty</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>支持此属性的变量</ToolTip>
<Default>myVar</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[private $type$ $field$;
 
public $type$ $property$
{
get { return $field$;}
set { $field$ = value;}
}
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

b.另存为修改snippet文件


我们针对如上代码进行另存为 proprp.snippet,对代码进行修改增加一行
 this.RaisePropertyChanged($property$);

c.Snippet文件的使用方法

键盘输入Snippet的文件名如proprp按2下Tab键会自动生成出一个属性定义结构代码。 然后按Tab键对类型和名称进行重写。这样就可以快速书写代码。

4.MVVM的好处

此处为观看视频后的个人的总结,对程序进行解耦合,增加代码的可读性,在不改变业务逻辑的基础上可以任意对UI进行更换,甚至可以有设计师直接把UI做好,开发人员直接用即可,详细可以参看视频中的讲解,例如第一个实例中的把TextBox代码换成Spliter的情况。

5.MVVM中的ViewModel中属性类型

a.数据属性

a.命令属性

详细请看下图:


6.利用第3方的 Prism

详情可以参考官方文档下载地址为

Prism 4.x - 5.x 文档

7.View Xaml 中值得注意的地方

a.Binding 与 DataContext 的关系:

如果View 中的 Xaml没有对其进行 DataContext 的绑定的时候,WPF会自己进行向上查找 DataContext,直到找到 Windows ,所以我们在构造函数写如下代码就可以了,代码如下:

class MainWindow
{
         MainWindow()
         {
               //省略的其他代码
               this.DataContext = new MainWindowViewModel();
         }
}


Xaml中可以直接用 Text={Binding YourValue} 的形式即可,详情可以参考我上传的代码。

b.DataGrid 的 ItemSource的重要性 和  DataGridTemplateColumn 中CheckBox模板列的处理绑定方式。

可以参看源代码。


8.如果有哪里写错的希望大家给予留言和指导,共同学习。


 

9.本人根据视频,自己整理出来的源代码,和视频中的例子基本吻合

详细参看代码
点击打开链接

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有