私のアプリケーション レイヤーは、DialogPresenters を使用して、さまざまなダイアログ (モーダル、スプラッシュ スクリーンなど) にいくつかの ViewModel を表示します。
public DataImportDialogPresenter(DataImportViewModel viewModel, IDialogView shellView, IDialogView owner)
: base(viewModel, shellView, owner)
{
//Base sets the view data context etc.
//Monitor CancelCommand and close the dialog
viewModel.CancelCommand = new DelegateCommand(() => Terminate());
}
このセットアップは非常にうまく機能しますが、ViewModel が CancelCommand で何かを行う必要があると判断した場合 (これは完全に合理的です)、プレゼンターの Terminate() への呼び出しを置き換えるか、その逆を行います。
私がやりたいことは次のとおりです。
viewModel.CancelCommand += new DelegateCommand(() => Terminate());
イベント ハンドラーをアタッチするのと同じ精神で。
- これは C#.NET 3.5 で可能ですか?
- どうすればそれを達成できますか?
- これは悪い MVVM プラクティスですか?
ありがとう
D