让一个班级与UserControl合作的最佳实践

时间:2012-07-13 09:30:23

标签: c# winforms .net-3.5

我正在创建一组名为*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()方法。

现在我要做的是为每个继承自IActivity的类创建一个UserControl(用于以图形方式编辑任何变量并以图形方式订购活动)。

这样做的最佳方式是什么?

我的想法是:

  1. 为每个Activity创建一个单独的UserControl,然后在UserControl的构造函数中创建一个活动实例......或者......
  2. 使每个活动成为继承自IActivity的UserControl。问题在于我可能不希望在程序的其他部分使用UserControl元素,只使用每个执行的操作,并且使用UserControl,这肯定会在不需要时使用更多资源...
  3. 有什么想法吗?

    修改 我们的想法是每个Activity都有一些可以编辑的属性,每个属性执行一个独特的动作,该动作在调用StartActivity时执行。 可以通过创建活动实例并添加到列表中来执行活动。循环遍历列表以按顺序执行每个StartActivity。 或者在表单上,​​每个活动的UserControls可以创建并将表单拖动到用户所需的顺序(在幕后填充列表),然后单击“开始”按钮(循环列表调用每个{{1}反过来。

    这将使用WinForms。

1 个答案:

答案 0 :(得分:0)

你应该按照你的第一个想法去做。将* Activity作为特定* UserContorl的属性(只读),并通过UC构造函数实例化它。然后,您可以通过UC直观地设置活动的属性。