4

私は現在、ブラウンフィールド アプリケーションに取り組んでいます。それは、後のバージョンで WPF を使用するための準備として、winforms で書かれています。チームは、少なくとも MVVM/Presentation モデルを使用し、winforms に対してバインドする予定です...

私は、このサイトの投稿 (私はとても気に入っています) を含め、主題を調査しました。要約すると、wpf の主な利点は次のとおりです。

  • コントロールを xaml のプロパティにバインドします。
  • ビューモデル内のコマンド オブジェクトにコマンドをバインドします。

最初の機能は、(コードで) 実装するのが簡単です。または、フォーム内のすべてのコントロールをバインドする汎用コントロール バインダーを使用します。

2 番目の機能は実装が少し難しくなりますが、すべてのコントロールから継承し、コマンド プロパティ (クリックなどの内部イベントによってトリガーされる) を追加すると、ViewModel のコマンド インスタンスにバインドされます。

私が現在認識している課題は次のとおりです。

  • コマンドマネージャーを実装します (必要に応じてコマンドの CanInvoke メソッドをトリガーします。
  • winforms は 1 つのレベルのデータ バインディングのみをサポートします。datasource、datamember、wpf ははるかに柔軟です。

この設計パターンを実装しようとすると、wpf と比較して winforms に欠けている他の主要な機能が欠けていますか?

多くの人がある種の MVP パターンを推奨すると確信していますが、将来の WPF サポートが必要なので、MVVM/Presentation モデルが私には適しています。

前もってありがとう、エリック。

4

2 に答える 2

1

Update Controls .NETをご覧ください。データの変更に合わせてコントロールを最新の状態に保つ、Winforms、WPF、および Silverlight 用のオープンソース ライブラリです。今すぐ Winforms で使用を開始してから、データ モデルまたはビュー モデル コードを変更せずに WPF に移行できます。

残念ながら、Winforms コマンド バインディングの問題は解決されません。ボタン クリック イベントは、Winforms から WPF に移植されません。ただし、データ バインディングの問題は処理されます。

于 2009-09-28T21:09:17.487 に答える
1

WAF Windows Forms Adapterが興味深いと思われるかもしれません。Windows フォーム アプリケーションで Model-View-ViewModel (MVVM) パターンを適用する方法を示します。アダプターの実装は、 Windows フォームで欠落しているコマンドのサポートに対するソリューションを提供します。

于 2010-09-20T18:10:57.310 に答える