我开始使用 MVVM 构建 Silverlight 应用程序。我在 XAML 页面上有一个按钮,可以在单击时保存数据我已经编写了以下代码。
<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();
}
}
哪种适用于我的保存命令。我的问题是如果页面上有多个按钮,那么我是否必须为每个按钮编写与上面相同的代码?任何机构都可以提出更好的方法吗?