在Windows Phone 7应用程序开发中,使用MVVM模式是提高代码可维护性和可测试性的一种有效方法。MVVM Light是一个流行的轻量级MVVM框架,它提供了一些有用的工具来简化数据绑定和命令的实现。本文将介绍如何使用MVVM Light框架将应用栏(ApplicationBar)和菜单项(MenuItem)绑定到RelayCommand。
在开始之前,请确保已经安装了MVVM Light框架。如果没有,请访问下载并安装项目模板。
打开Visual Studio,点击"文件"->"新建项目",导航到"Silverlight for Windows Phone",确保使用的是"MVVM Light (WP7) Template"。
为了使应用栏和菜单项支持命令绑定,需要下载一个名为Phone7.Fx的包装库。这个库由Nicolas Humann创建,可以从下载。下载后,请将其解压到能找到的位置。
在WP7项目中,右键点击"引用",然后将下载的DLL文件添加到项目中。
在MainPage.xaml文件中,需要添加正确的命名空间。不要忘记在添加后构建项目。
现在可以在MainPage.xaml中添加BindableApplicationBar,只需几行代码。
最终的MainPage.xaml应该类似于以下代码:
最后,需要在MainViewModel.cs文件中创建RelayCommands,并将其写入MessageBox。
public class MainViewModel : ViewModelBase
{
public string ApplicationTitle
{
get
{
return "MVVM LIGHT";
}
}
public string PageName
{
get
{
return "My page:";
}
}
public string Welcome
{
get
{
return "Welcome to MVVM Light";
}
}
public RelayCommand DisplayAbout { get; private set; }
public RelayCommand InputBox { get; private set; }
public MainViewModel()
{
if (IsInDesignMode)
{
// Code runs in Blend --> create design time data.
}
else
{
DisplayAbout = new RelayCommand(() =>
{
MessageBox.Show("About box called!");
});
InputBox = new RelayCommand(() =>
{
MessageBox.Show("settings button called");
});
}
}
}