2012-01-27 18 views
-1

私は22のプライマリイメージと13のセカンダリイメージを持つアプリケーションを作る必要があります。C#でこのフローを実装する最良の方法

フローの説明:image1が表示され、2つのオプション(これは条件)を持つチェックリストが1つあります。チェックされた条件1の場合、画像23に進み、次にチェックされたオプション2が画像24に進み、次に画像2に進む場合、両方がチェックされていない場合、画像2に直接進む。ここで

は、流れが例示するためである。いくつかのケースでは

a flowchart

は、二つの条件または3つであっても1つの条件のみを有していても良いです。

私はこれをC#で行う必要があります。どうやってイメージ間をジャンプできますか? 35目に見えるオプションで遊んでいるパネル? MultiViews?他のコントロール? これほど多くのifs elsesなしでこれを行う方がいいですか?私にいくつかのガイドラインを教えてください。

+0

使用すると、1つのオプションが複数ある場合のcase' 'を使用することは常にあります。しかし、ブール値の場合これ、またはそれ、 'もし' else'が最高です – Doomsknight

+0

あなたは何を正確に探していますか?ユーザーはカスタマイズ可能ですか?デザインパターン? – Holystream

+0

まず、UIの画像から画像へジャンプする最善の方法。パネル可視/不可?マルチビュー? – ajrpc

答えて

1

有限状態マシンについて学ぶ必要があります。理論をよく理解すれば、自分の状態マシンをかなり簡単に動かすことができます。

コンフィギュレーションを簡単にするために、状態間の遷移をファイルに保存することもできます。

0

これが役立つかどうかわかりませんが、Image3またはImage4の空の状態が空でない状態のtrueと等しいと思われます。

これは、条件と値の間にマッピングがあることを意味します。この部分をコードの一部を抽出するために使用することができます(または空の条件としてただtrue)と画像の名前を取得し、条件が満たされている場合はその名前で何かを行います。

2

いやちょうどあなたがする必要がある

+0

あなたの意見に同意します。 –

0

..

個人的に私はそのようなことを実現するための「完璧な」方法があるとは思わない...場合/他の場合/他またはケースステートメントを使用しますデザインパターンを読んでください。有用な「ギャング・オブ・4」の本ではなく、エリック・フリーマンとエリザベス・フリーマンの非常に優れた本Head First Design Patternsをお勧めします。

Head First Design Patterns Cover

あなたが興味のある特定のパターンが状態パターンです。これは、一言で言えば

State Pattern Class Diagram

クラス図である、あなたが有益な何かをコンテキストを持っています。それは外部インターフェイスはあなたのニーズに完全に依存しています。各コンテキストインスタンスは、内部に存在するさまざまな内部状態を持っています。これをif/then/else/switch/lookupなどの入れ子にしてコード化することは複雑になり、メンテナンスとデバッグが困難になります。したがって...

コンテキストの状態を表す単一の抽象型を作成します。その抽象的な状態クラスの各具体的なサブタイプは、異なる状態であり、その状態に必要な動作を実装します。

コンテキストには、現在の状態を参照する1つの内部メンバがあり、開始状態で初期化されます。コンクリート_stateインスタンスの責任の

一つは、それが実行されるアクション(複数可)に基づいに遷移すべき次状態コンテキストを提供することです。

通常、状態には、独自のメンバーはありません。コンテキストへの参照を保存してください。単に動作を提供するだけです。それはコンテキストの内部にアクセスできる場合に役立ちますが、それを行うことを選択します。

ステートパターンは、Strategy Patternと似ています(ただし、異なるものです)。

ここから始めるにはいくつかのリンクがあります。

関連する問題