您的位置:首页 > 其它

MVVM开发模式MVVM Light Toolkit

2012-05-02 20:37 232 查看
MVVM模式就不细说了

个人理解

M是Model,是业务实体model,包含了数据的存取访问

V是View,是页面,是展示,是数据的显示,应该是单纯的xaml代码

VM是ViewModel,他应该是View上数据,方法,事件的抽象集合,是沟通Model和View的桥梁

一。 MVVM Light Toolkit安装

目前GalaSoft的 MVVM Light Toolkit这个插件在mvvm开发方面应用比较广泛
http://www.galasoft.ch/mvvm/
安装地址

http://www.galasoft.ch/mvvm/installing/

目前正式版本是V3.0

二。新建mvvm项目

下载安装以后,vs2010,就自动安装了mvvm的项目模板,在window phone项目下面就可以找到适用于window phone开发的mvv项目模板

新建项目以后,mvvm基本架构就全部已经在项目中包含了

有Model文件夹,viewmodel文件夹,xaml就是View

有几个文件和代码段要注意。

ViewModelLocator这是一个核心类,这个类返回实例化的ViewModel到View。



//返回MainViewMode实例
public MainViewModel Main
{
get
{

return MainStatic;
}
}




Loator的定义在App.xaml中,在app.xaml中声明可以全局使用

<vm:ViewModelLocator x:Key="Locator"
d:IsDataSource="True" />
</Application.Resources>

在MainPage.xaml文件中有几个显示文字title的地方



<StackPanel x:Name="TitlePanel"
Grid.Row="0"
Margin="24,24,0,12">
<TextBlock x:Name="ApplicationTitle"
Text="{Binding ApplicationTitle}"
Style="{StaticResource PhoneTextNormalStyle}" />
<TextBlock x:Name="PageTitle"
Text="{Binding PageName}"
Margin="-3,-8,0,0"
Style="{StaticResource PhoneTextTitle1Style}" />
</StackPanel>




其中Bindind中 ApplicationTitle,PageName都是ViewModel 文件夹中MainViewModel中的属性

MainViewModel 和MainPage.xaml是通过这个代码段绑定到一起的。

在MainPage.xaml的根元素上声明

DataContext="{Binding Main, Source={StaticResource Locator}}

三。新建页面

参照MainPage页面,新建页面的时候也是新建一个ViewModel,一个View.xaml,并且在ViewModelLocator.cs中多注册一个返回View的属性方法绑定到xaml中就可以

新建viewmodel和view的时候也会看到mvvm安装后产生的新模板,可以直接使用



ublic class MvvmViewModel1 : ViewModelBase
{
/// <summary>
/// Initializes a new instance of the MvvmViewModel1 class.
/// </summary>
public MvvmViewModel1()
{
////if (IsInDesignMode)
////{
////    // Code runs in Blend --> create design time data.
////}
////else
////{
////    // Code runs "for real": Connect to service, etc...
////}
}

public string Hello
{
get
{
return "Hello World!~";
}
}

////public override void Cleanup()
////{
////    // Clean own resources if needed

////    base.Cleanup();
////}
}




在ViewModelLocator.cs中注册这个viewmodel

可以参考模仿原来的Main的属性

或者直接使用代码段Code Snippets

安装过mvvm后在安装的文件夹位置可以找到代码段,在vs的工具中--代码段管理器,导入这些

然后在 拼写 mvvmlocatorproperty 的时候就可以看到自动生成的属性,然后把属性名字改成正确的viewmodel名字就可以

分类: 移动开发(WP,andriod)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: