Silverlight程序使用mvvmlight开发框架教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现有Silverlight程序使用mvvmlight开发框架教程

1)创建Silverlight 应用程序。

2)添加mvvmlight引用,如果使用模板创建,会自动生成引用,而这里我们需要自己添加。

3)添加ViewModels、Locators、Models文件夹。

4)为MainWindow添加ViewModel,在解决方案浏览器中,右键ViewModel文件夹,添加新类,类名称为MainViewModel,如果安装了mvvmlight模板,选择类模板为MvvmViewModel

5)添加类ViewModelLocator,我们叫它ViewModel加载器,在解决方案浏览器中,右键项目名称,添加新类,类名称为ViewModelLocator,如果安装了mvvmlight模板,选择类模

板为MvvmViewModelLocator。

6)打开App.Xaml,先添加ViewModel命名控件引用,然后为ViewModelLocator添加一个全局的资源,app.xaml的内容如下:

x:Class="SilverlightApplication8.App"

xmlns="/winfx/2006/xaml/presentation"

xmlns:x="/winfx/2006/xaml"

xmlns:d= "/expression/blend/2008"

xmlns:mc="/markup-compatibility/2006"

xmlns:vm="clr-namespace:SilverlightApplication8.Locators"

mc:Ignorable="d"

>

7)打开MainWindow.xaml文件,首先为MainWindow设置DataContext为MainViewModel,MainWindow.xaml代码如下:

x:Class="SilverlightApplication8.MainPage"

xmlns="/winfx/2006/xaml/presentation"

xmlns:x="/winfx/2006/xaml"

xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Control s.Navigation"

xmlns:uriMapper="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Contro ls.Navigation"

xmlns:d="/expression/blend/2008"

xmlns:mc="/markup-compatibility/2006"

mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"

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

。。。。。。

8)我们把MainPage的HyperlinkButton更改为Command绑定,通过传递参数的方式导航,这么做的好处可以把不同模块按需加载。MainViewModel中增加了一个LoadUrlCommand 的RelayCommand命令。

MainViewModel.cs的代码:

using GalaSoft.MvvmLight;

using GalaSoft.MvvmLight.Messaging;

using System.Windows.Input;

using mand;

using System.Windows;

using System;

namespace SilverlightApplication8.ViewModels

{

///

/// This class contains properties that a View can data bind to.

///

///Use the mvvminpcsnippet to add bindable properties to this ViewModel.

///

///

/// See http://www.galasoft.ch/mvvm/getstarted

///

///

public class MainViewModel : ViewModelBase

{

private static MainPage root;

///

/// Initializes a new instance of the MainViewModel class.

///

public MainViewModel()

{

HomeNav = new Nav{ NavigateUri="/Home", Package="SilverlightApplication8.xap" }; //作为复杂对象绑定前台

LoadUrlCommand = new RelayCommand(LoadUrl); //LoadUrlCommand绑定到LoadUrl处理函数

LoadNavUrlCommand = new RelayCommand

相关文档
最新文档