【问题标题】:Best practice for having a class partnered with UserControl与 UserControl 合作的课程的最佳实践
【发布时间】:2012-07-13 09:30:23
【问题描述】:

我正在创建一组名为 *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
    }
  }

这样我就可以创建IActivitys 的列表/数组并运行他们的StartActivity() 方法。

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

最好的方法是什么?

我的想法是:

  1. 为每个 Activity 创建一个单独的 UserControl,然后在 UserControl 的构造函数中创建该 Activity 的实例......或者......
  2. 使每个活动都成为继承自IActivity 的用户控件。问题在于我可能不想在程序的其他部分使用 UserControl 元素,只使用每个执行的操作并为此使用 UserControl 肯定会在不需要时使用更多资源......李>

有什么想法吗?

编辑: 这个想法是每个 Activity 都有一些可以编辑的属性,并且每个都执行一个不同的操作,当它被调用时会执行 StartActivity 。 活动可以通过创建活动实例并添加到列表来在代码中执行。循环遍历列表以按顺序执行每个StartActivity。 或者在表单上,​​每个活动的 UserControls 可以由用户创建并拖动到表单周围以达到所需的顺序(在幕后填充列表),然后单击开始按钮(循环调用每个 StartActivity 的列表转。

这将使用 WinForms。

【问题讨论】:

  • 您使用 UserControl 的目的有些不清楚。你能详细说明一下吗?它在 WinForms 中吗?

标签: c# winforms .net-3.5


【解决方案1】:

你应该带着你的第一个想法去。将*Activity作为特定*UserContorl的Property(read-only),通过UC构造函数实例化。然后就可以通过UC直观的设置Activity的Properties了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多