我有一个想要构建的控件框架的概念。这个想法的不同之处在于,我不打算采用“一刀切”的方法或“一个控制来统治他们”的方法。
例如,Telerik 和 ComponentOne、Xceed 等制作了一个非常棒的 Grid 控件。然而,它们都是具有成百上千个方法和属性、复杂对象模型层次结构等的巨大控件……这些往往网格对于您需要的东西来说太过分了,但是您仍然必须承担学习整个网格以做一些简单的事情的艰巨任务。
我的概念更像是一种“混合”方法。您可以在其中创建一个非常简单的控件,然后构建您可以“添加”到该控件的功能点菜。例如,您有一个简单的网格,并且您想为每个添加带有页眉和页脚的网格“部分”。
好的,那么问题出在哪里?做这种事情的传统方式是通过多重继承,C# 不支持。即使它确实支持它,我仍然认为 MI 增加的问题多于它解决的问题。
所以我正在征求关于如何解决这个问题的意见。MEF 会是一个潜在的解决方案吗?
编辑:
我想到的是,可以使用表达式树从各种表达式构建控件。我必须再考虑一下,但这是一个有趣的概念。
另一个可能的选项可能是“控制生成器”,它基于选定的特征生成装配。这似乎更复杂,但使用 T4 可能是可以管理的。