MVVM コマンド処理の合理化: RelayCommand アプローチ
MVVM アーキテクチャでは多くのコマンドが必要になることが多く、ICommand インターフェイスの実装が繰り返し行われることになります。これは面倒で非効率的になる可能性があります。
一般的な回避策には、実行および実行可能チェック用のデリゲート メソッドを持つ単一の ICommand クラスを作成することが含まれます。 ただし、これには依然として個別のデリゲートを管理する必要があります。
よりエレガントなソリューション: RelayCommand パターン
Karl Shifflet の RelayCommand パターンは、より洗練されたソリューションを提供します。実行ロジックと実行可能ロジックの両方に汎用デリゲートを活用し、個別のデリゲート クラスの必要性を排除します。
<code>public class RelayCommand : ICommand { private readonly Predicate<object> _canExecute; private readonly Action<object> _execute; // Constructor }</code>
MVVM ViewModel への RelayCommand の実装
RelayCommand を MVVM 構造に統合するのは簡単です。
<code>public class MyViewModel { private RelayCommand _doSomething; public ICommand DoSomethingCommand { get { if (_doSomething == null) { _doSomething = new RelayCommand( p => CanDoSomething(), p => DoSomeImportantMethod()); } return _doSomething; } } }</code>
RelayCommand を使用する利点
RelayCommand パターンは、WPF MVVM アプリケーションでコマンドを管理するための簡潔かつ効率的な方法を提供し、開発者のツールボックスにとって貴重な資産となります。
以上がRelayCommand パターンを使用すると、MVVM での ICommand 実装をどのように簡素化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。