1

WPF に C# プロジェクトがあります。以前に MVC を使用したことがありますが、現在は XAML と組み合わせて MVVM を使用しようとしています。

私には複数のモデルがあり、タブ項目を含む 1 つの GUI ウィンドウがあり、複数のビューモデルがあります。各タブ項目は各モデルに関連しているため、モデルごとに ViewModel があります。

ここで、バインディングを使用したいと思います (WPF/XAML を使用する理由)。ViewModel X でボタンをコマンドにバインドするにはどうすればよいですか?

例えば:

  • 2 つのモデル: 家と人
  • 表示: GUI の 2 つの TabItem、家とのすべてのやり取りに関する 1 つの TabItem、および人物用の 1 つの TabItem。
  • 各 TabItem に関連付けられた 2 つの ViewModel。
  • 私は家を売りに出す命令を持っています。

コマンドの名前にバインドするだけのコードがたくさんありますが、1 つだけでなく複数のビューがあるため、どうすればよいでしょうか? 他のすべての ViewModel を処理する 1 つの ViewModel を作成する必要がありますか?

4

2 に答える 2

1

コマンドの名前にバインドするだけのコードがたくさんありますが、1 つだけでなく複数のビューがあるため、どうすればよいでしょうか?

バインディング システムのしくみを理解していることを確認してください。DataContext にバインドしています。したがって、個々のタブごとに個別の DataContext 値セットがある場合は、コマンドの名前を使用してバインドできます。

これを知っていれば、確立したパターンを使用して続行できます。私の謙虚な意見では、それは非常に複雑になりすぎると思います。MVVM 開発者の大半は、View から ViewModel への 1 対 1 の関係を適用しています (ただし、UserControl オブジェクトについて話すとややこしくなります)。ただし、何も決まっていないので、最終的にどのように進めたいかはあなた次第です。

于 2013-01-11T12:47:05.677 に答える
0

ビューモデルの数が限られていると思います。したがって、2 つの選択肢があります。1つ目はDataTemplateSelectorTabItemを使用すること、2 つ目は xaml で各ビューを定義し、それぞれContentを必要な VM にバインドすることです。

于 2013-01-11T12:53:46.397 に答える