我开始使用MVVM构建Silverlight应用程序。 我有一个XAML页面上的按钮来启用点击数据的保存我已经写了下面的代码。Silverlight MVVM中的多个命令绑定
<Button Content="Save" Grid.Column="2" Grid.Row="3"
Command="{Binding Path=SaveCourse}"/>
在视图模型类中,我实现了下面的代码;
public class SaveCurrentCourse : ICommand
{
private MaintenanceFormViewModel viewModel;
public SaveCurrentCourse(MaintenanceFormViewModel viewModel)
{
this.viewModel = viewModel;
this.viewModel.PropertyChanged += (s, e) =>
{
if (this.CanExecuteChanged != null)
{
this.CanExecuteChanged(this, new EventArgs());
}
};
}
public bool CanExecute(object parameter)
{
return this.viewModel.CurrentCourse != null;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
this.viewModel.SaveCourseImplementation();
}
}
我的保存命令适用于哪种类型。 我的问题是,如果页面上有多个按钮,那么我是否必须为每个按钮编写与上面相同的代码? 任何机构都可以提供更好的方法吗?
顺便说一句,所有的代码都来自内存,显然if语句不会编译,但它应该非常接近。 – Adam 2011-01-29 17:19:35