当前位置:文档之家› Silverlight程序使用mvvmlight开发框架教程

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

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

现有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="https://www.doczj.com/doc/3515597935.html,/winfx/2006/xaml/presentation"

xmlns:x="https://www.doczj.com/doc/3515597935.html,/winfx/2006/xaml"

xmlns:d= "https://www.doczj.com/doc/3515597935.html,/expression/blend/2008"

xmlns:mc="https://www.doczj.com/doc/3515597935.html,/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="https://www.doczj.com/doc/3515597935.html,/winfx/2006/xaml/presentation"

xmlns:x="https://www.doczj.com/doc/3515597935.html,/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="https://www.doczj.com/doc/3515597935.html,/expression/blend/2008"

xmlns:mc="https://www.doczj.com/doc/3515597935.html,/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 https://www.doczj.com/doc/3515597935.html,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

相关文档 最新文档