我開始使用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