2009-06-28 9 views
2

私は、Visual Studioと同様のインターフェースを持つアプリケーションを持っています。そこには、開くことができ、保存された編集可能なドキュメントのリストがあります。それぞれの文書は異なるタイプのものでも、異なるエディタもあります。MVVM Design for Multi Document app?

また、保存MenuItemもあります。私がしたいのは、保存コマンドはアクティブな文書のみを保存することです。ドキュメントVMをSave MenuItemに接続するMVVMを使用する標準パターンがありますか?

答えて

1

私は標準的な方法については知らないが、私は次のような何かをしようとするだろう:

  1. ごSaveDocument関数コマンドのスタブを持つインターフェイスを作成します。
  2. ドキュメントのViewModelのインターフェースを実装してください。
  3. 現在のドキュメントのリストには、ユーザーが現在フォーカスしているviewmodelドキュメントを返すプロパティがあります。アーギュメントのためにCurrentDocumentと呼んでください。 WPFデータバインディングは、docからdocに切り替えるときにこれを設定します。
  4. 保存コマンドでCurrentDocumentプロパティを使用してドキュメントを取得してください。 nullではないことを確認し、適切なインタフェースを実装してください。すべてのチェックが合格した場合は、ViewModelドキュメントのSaveDocumentコマンドを呼び出します。
+0

イエップ。それは私が応答を得ていないので、私がやったことです。 +1 –

+0

唯一の違いは、メニューviewmodelには私がバインドする保存コマンドがあるため、保存可能なドキュメントが開いていない場合は、デフォルトのsaveコマンドが使用されます(何もしません)。ドキュメントが変更されたときにmenu viewmodelコマンドsavable documentsコマンド、またはデフォルトに設定します。 –