C#简化了通用用户控件

时间:2014-10-26 07:11:25

标签: c# winforms user-controls

通过执行以下操作实现了通用用户控件:

public class GenericControl<T> : Control {}
public class CustomerTypeControlParent : GenericControl<CustomerType> {}
public class CustomerTypeControl : CustomerTypeControlParent {}

我正在执行上述操作,以便将继承的控件(CustomerTypeControl)放在表单设计器中。这工作正常。但是我有50多个这样的控件,尽管大多数代码都包含在通用控件本身中,但它看起来并不像一个干净的解决方案。

一个问题是我无法使用接口,例如,CustomerType公开了Name和Description字段,而ProductCategory公开了Number和Description。其他实体暴露不同的领域。

此外,我不想只使用一个控件,然后使用long switch语句来确定我当前拥有的对象类型,转换它并获取相应的字段。

我也使用上面的方法,以便我可以强烈输入。

上面有更清洁的方法吗?

1 个答案:

答案 0 :(得分:0)

我认为最佳做法是始终为每个具有相同类型数据的模型或实体提供特定的GUI元素 “名称和描述”似乎与“数字和描述”不同,因此您应该有两个单独的GUI控件 如果他们实际上应该使用相同的GUI元素,那么我不明白为什么你不能使用这样的界面:

public interface ITextAndDescription
{
    string Text;
    string Description;
}

然后,您将为CustomerType和ProductCategory实现此功能,然后您就可以了。