1

同じことを述べている古い質問を監督しなかったことを願っていますが、私が見る限り、それらはすべてより専門的でした。

私が「正しい軌道に乗っている」かどうか知りたかったのです。以前は C# (主に .net-3.5) で WinForms の作業を行っていましたが、今はちょっとしたサイド プロジェクトで WPF を使用/学習したいと考えています。現時点では、WPF (.net4) を使用する場合の MVVM およびその他の実装の詳細について多くのことを読んでいます。

私が達成する必要があるのは:

Oracle データベース用の一種の検索ツールが必要です。データベース接続などが固定され、稼働しています。したがって、この部分で行う作業はありません。新しいツールは、windows7-desktop-pcおよびwindows7-tablet-pc で実行する必要があります。したがって、通常のマウスキーボードインタラクション GUI とタッチ入力用に最適化された 2 つの異なるビューが必要です。

そこで、1 つのモデル、1 つのビューモデル、および 2 つのビューを使用するというアイデアがありました。Unity やこのようなものを介して IOC を使用したくありません。複雑なレイヤーが追加され、この小さなサイド プロジェクトではやり過ぎになるからです。

私の実際の質問:

これは正しいアプローチですか (1 つの View-Model で 2 つのビューを使用する)、それともここで完全に間違っていますか (ここでは DataTemplates の方が良いのでしょうか?)。そして、これを実装するための良いアプローチは何ですか?

前もって感謝します!

4

3 に答える 3

2

ViewModelを持つことの背後にある考え方は、ビュー固有のものへの直接の依存関係がない場所にビュー関連のロジックを統合する場所を持つことです。ですから、そうです、あなたのアプローチは素晴らしいと思います。

DataTemplatesは「小さい」ビューモデルに適しているように見えるので、DataTemplateSelectorは状況に基づいてテンプレートを選択する作業をうまく行うことができますが、フルサイズのコントロール用にそれを行うことができる追加のコードを投資する価値があると思います。

ユーザーがアプリを使用している方法を自動的に検出できるかどうかを判断する必要があります。また、ビューの選択が多かれ少なかれ自動的に行われるように、ビュー名を規則に従うようにする必要があります。

于 2012-06-11T19:56:30.483 に答える
1

あなたは正しい方向に進んでいると思います。

これは、MVVMの使用の完璧な例です。バックエンドを変更せずに、ビューを変更したり、ビューの複数の外観を設定したりできます。

DataTemplatesとDataTemplateSelectorを使用していることはわかりますが、ビューが複雑になると、読みやすさと保守性が低下します。

于 2012-06-11T19:56:22.577 に答える
0

また、あなたが正しい方向に進んでいることにも同意しますが、ネストされたユーザーコントロールまたは多数のビューを含む大規模なプロジェクトの場合、2つの異なるスタイルの単一のビューを確認する価値があります。最も単純な場合、タッチスタイルにはより大きな入力コントロールがあります。これは、バインディングロジックへの変更は、それが使用されている両方のビューではなく、1つの場所(単一のビュー)でのみ行う必要があることを意味します。

于 2012-06-12T09:32:51.987 に答える