4

MVVM パターンで WPF アプリケーションを作成する方法を練習しています。これまでのところ、コードでコマンドを使用していません。私のビューモデルでは、イベントを発生させるためにINotifyPropertyChanged(event PropertyChangedEventHandler PropertyChanged) を実装して使用しました。コマンドの使用方法に関する WPF の概念をまだ見逃しているように感じるのはなぜですか?

コマンドを使用するのが適切なのはいつですか?

4

2 に答える 2

0

楽しいことは、WPF の元のコマンドの概念を使用する必要がないことです:)。MVVM 全体と無料のオープン ソース アプリケーション フレームワーク ライブラリCaliburn.Microを使用するだけで、疎結合設計 (xaml) とビジネス ロジック (c#/vb コード) のすべての美しさを備えた大規模で複雑なアプリケーションを構築できます。

免責事項: 私はこのライブラリの幸せなユーザーであり、作成者とは何の関係もないため、これは有料広告などではありません。

公式ドキュメントからこの非常に基本的なサンプルを見てください:

-->基本的な構成、アクション、および規則<--

コマンドの宣言と登録のためのプロキシ コードを混乱させることなく、XAML ビューから C# ビューモデルのメソッドにイベントを直接バインドする機能を利用できます (これは他の同様のアプリケーション フレームワークで実装されているように)。

そして、このサンプルが Silverlight アプリであることは気にしないでください - Caliburn.Microはすべての主要な Xaml プラットフォームをほぼ同じ方法でサポートし、WPF サンプルは上記の Silverlight ベースのように見えます。

上記の主要な機能 (メソッドへのバインド) に加えて、Caliburn.Micro には次の機能があります。

  • XAML ファイルをクリーンで読みやすい状態に保つ、バインド用の事前定義された便利な命名規則 (しかも、設計時に使いやすい)
  • INotifyPropertyChangedの基本実装なので、すべてのビューモデルを継承できます
  • 次のような頻繁に使用されるシナリオを実装するための基本クラス:
    • マスター詳細
    • 親子
    • 選択したアイテムのリスト
  • ビューモデルと他のクラス間の疎結合通信のためのEventAggregator
  • キーボード フォーカスやウィンドウ管理などの疎結合サポート (WPF 用)
  • そしてもう少し:)

チャンスを与えるだけで、バニラの WPF コマンドは必要ありません;)

于 2013-06-11T09:41:47.493 に答える