2012-03-26 11 views
2

私は設計パターンが存在すると確信しています。そのパターンを知り、それを攻撃するためのベストプラクティスについてもっと知りたいと思います。GUIコンポーネントの巡回依存関係の処理

私は時間間隔を入力するためのインタラクティブなインターフェースを持っています。

D < = Cの(Cが指定されている)

H:M:この時間間隔は、日(D)、時間(H)、分(M)と秒(s)の数に制限があります上記界面におけるS < = 5時30分00秒

enter image description here

、手動ですべてのパラメータの値を取得するためのノブ(それらの円形のゲージ)を変更することができる(4つのノブ、3同心と1があります独立した)。また、テキストボックスを自分で編集することもできますし、ノブは変更を反映することになっています。もちろん、ノブを回すと、回転中にの値が変化します。動きが安定した後ではなく、です。これは、大量のイベントが発生し、多数のコーナーケースが処理されることを意味します。たとえば、h:m:sを4:38:00とし、ユーザーが時間を増やすとします。単純な5:38:00の代わりに、日数を増やす以外に0:08:00、または日がすでに最大である場合は5:30:00にする必要があります。現在、何が起こる

は、すべてのロジックは、テキストボックスのTextChangedイベントに書かれていることである、とノブValueChangedイベントは、ちょうど適切なテキストボックス内のテキストは、このようにそのTextChangedイベントを発射変更します。ですから、一般的な質問は、どのように多くのオブジェクトがお互いに変化し、循環的にお互いに依存するようなシナリオを扱うことができるのですか?ノブを回転させると、テキストボックスによって変更が拒否され、ノブのポインタに以前の値が「回転中」に再割り当てされます。

答えて

0

私はMVVMがあなたのシナリオにうまく適用できると思います。あなたが持っている:日、時間、分、秒、プラス必要に応じてそれらのいずれかに変更を処理し、他人にそれを反映させるためのビジネスロジックが含まれてい

  • 一つのモデルを(.NETであなたが使用することができDependency Properties
  • 二つのビュー:テキストボックスとknowbs
  • ビューからのイベントを処理し、モデルの取扱いの変更と同様、モデルに渡すとビューにそれらを反映することができる2つのviewmodels、各ビューについて1つ、

このアプローチでは、2つのビューとdを使用すると、値の周りのロジックを1つの場所(モデルまたはコントローラにMVC patternを追加する場合)に維持できます。 viewmodelsは、UIでイベントを処理する方法もカプセル化します。

関連する問題