MVVM-WPFシナリオのViewModelsにコマンドを実装するときに、多くのコードを繰り返していることに気づきました。以下に示すように、標準の実装は、タイプのパブリック読み取り専用フィールドICommand
、プライベートDelegateCommand
フィールド、および実行ロジックのメソッドで構成されます。sget -accessorDelegateCommand
で初期化されます。ICommand
すべてのコマンドの繰り返しを考慮して、このアプローチをどのように凝縮できますか?
private DelegateCommand saveCommand;
private DelegateCommand commandClearInputFileList;
private DelegateCommand commandInputFilesDeleteSelected;
public ICommand SaveCommand {
get {
if (saveCommand == null) {
saveCommand = new DelegateCommand(CommitDataBasePush);
}
return saveCommand;
}
}
public ICommand CommandClearInputFileList {
get {
if (commandClearInputFileList == null) {
commandClearInputFileList = new DelegateCommand(InputFilesClear);
}
return commandClearInputFileList;
}
}
public ICommand CommandInputFilesDeleteSelected {
get {
if (commandInputFilesDeleteSelected == null) {
commandInputFilesDeleteSelected = new DelegateCommand(InputFilesDeleteSelected);
}
return commandInputFilesDeleteSelected;
}
}