0

私は、すべてがインターフェースから継承するという一連のクラスを作成して*Activityいます。IActivity

  public interface IActivity
  {
    void StartActivity();
  }

  public class MyFirstActivity : IActivity
  {
    public int SomeVariable {get; set;}

    public MyFirstActivity(int someVariable)
    {
      SomeVariable = someVariable
    }

    public void StartActivity()
    {
      //some code to do stuff with SomeVariable
    }
  }

これは、 のリスト/配列を作成し、それらのメソッドIActivityを実行できるようにするためです。StartActivity()

今私がしたいのは、から継承する各クラスの UserControl (変数をグラフィカルに編集し、アクティビティをグラフィカルに順序付けするため) を持つことIActivityです。

これを行う最善の方法は何ですか?

私の考えは次のいずれかです。

  1. アクティビティごとに個別の UserControl を作成してから、UserControl のコンストラクターでアクティビティのインスタンスを作成します... または...
  2. 各アクティビティを から継承する UserControl にしIActivityます。これに関する問題は、プログラムの他の部分で UserControl 要素を使用したくない場合があることです。それぞれが実行するアクションを使用し、これに UserControl を使用すると、必要のない場合により多くのリソースが確実に使用されます...

何かご意見は?

編集: 各アクティビティには編集可能ないくつかのプロパティがあり、それぞれStartActivityが呼び出されたときに実行される個別のアクションを実行するという考え方です。アクティビティは、アクティビティのインスタンスを作成してリストに追加することにより、コードで実行できます。リストをループして、それぞれStartActivityを順番に実行します。別の方法として、フォーム上で、各アクティビティの UserControls を作成し、ユーザーが目的の順序になるようにフォームをドラッグして (バックグラウンドでリストに入力します)、[開始] ボタンをクリックします (リストをループして、それぞれStartActivityを順番に呼び出します)。

これは WinForms を使用します。

4

1 に答える 1

0

あなたはあなたの最初の考えで行くべきです。*Activityを特定の*UserContorlのプロパティ(読み取り専用)として取得し、UCコンストラクターを介してインスタンス化します。次に、UCを介してアクティビティのプロパティを視覚的に設定できます。

于 2012-07-13T11:18:18.337 に答える