2016-05-17 5 views
1

私は最近、Windows Presentation Foundation(WPF)を発見しました。これは私にとって非常に新しいフレームワークです。私はMVVMアーキテクチャを実装する上で複数のチュートリアルを行ってきましたが、私が見てきたすべての例よりもはるかに複雑であるため、これが手近な作業の正しいアプローチであるかどうかはまだ分かりません。私のプログラムを達成するために必要なものMVVMアーキテクチャでWPFを使用して、ポーリング対象のデバイスに対応する動的GUIを作成

現在、ノートパソコンに接続されているすべてのシリアルポートをスキャンしに会社によって生成レーザー(これは、ファームウェアのIDによって決定される)されているすべてのデバイスを追加するプログラム選択コンボボックス。ユーザーはCOMポート/デバイスを選択し、ボタンを押してそのポートに接続します。

これは、ユーザーが選択したデバイスに対応する新しいウィンドウ(ビュー)と新しいレーザーオブジェクト(モデル)の作成をトリガーします。選択されたデバイスに応じて、ウィンドウには、レーザーが有する異なるセンサー(例えば、電力、電流、温度)およびドライバーを表示するのに必要なフィールドが含まれていなければならない。 UIには、対応する読み取り値を監視して表示できるはずの約10種類のデバイスがあります。したがって、各タイプのデバイスは対応するビューを持つ必要があります。

まず、MVVMアーキテクチャは適切なアプローチですか?

もしそうなら、そのようなデザインをどのように実装しますか?すべてのデバイスに必要なすべてのフィールドを含む抽象基本ビュークラスを持つことができますし、基本クラスから継承する具象サブクラスを持つことができますか?

ありがとうございました!

+0

各デバイスウィンドウが(対話型でなければなりませんが開いている間、親と対話することはできません理解します)? – Karolis

+0

WPF/MVVMは理想的にはそれに適しています。その強みの1つは、任意の親にUIの任意のチャンクを詰め込むことの容易さです。私はなぜあなたがその中のすべての*デバイスの*すべての*プロパティを持つ抽象基本クラスを望むのか分かりません。私は、基本クラスを共通のものだけを持つ適切な基本クラスにし、サブクラスに必要なものを追加させます。ところで、私はあなたが "広すぎる"、 "意見に基づいて"、 "母は私を愛していない"、 "私が座っているバーはあまりにも騒々しい"などのためにここでうなずくことを期待しています。 –

+0

@Carlあなたダイアログタイプによって意味されますが、各ウィンドウは、デバイスから取得された読み取り値と設定のセクションによって毎秒更新されるフィールドを持つ別々のウィンドウでなければなりません。ユーザーは、レーザーの出力パワーとして測定する。 –

答えて

1

MVVMが適切です。

DataTemplateを使用して、に対応するViewModelを作成します。選択した内容に基づいてContentPresenterを使用してViewModelsを切り替えます。

Referance 1ここでは、ここでDataTemplate

Referance 2を使用してビューを切り替える方法を理解することができますがMVVM

Referance 3

+0

ありがとうございますアビン!私はこれについてさらに研究をします。 –

関連する問題