我想我知道答案,但我希望有人有一个简洁的解决方案。我们目前正在使用两种下拉控件(Telerik和.Net)。我希望将这些组合成一个控件,但是在用户友好的设计中挣扎。
理想情况下,控件将在设计文件中创建,其bool属性为“SimpleBox”,以确定要继承哪种控件。然后在代码隐藏设计文件中生成实例化,然后构造函数将动态加载基础(这是不可能的)。简单的解决方案是让我创建一个IDropDown接口,然后让工厂创建正确的接口。唯一真正的问题是每次都必须手动编写实例化,这很麻烦,并且根本不会加速我们的进程。
虽然不可能直接实现,但我正在寻找一个工厂的解决方案,该工厂在对象构造函数中运行,用于根据bool属性设置基础。
干杯
答案 0 :(得分:4)
您可能希望在此处查看合成/委派而不是继承。
本质上,不是直接扩展任何一个类,而是创建一个扩展Control
(或类似的低级别)并实现IDropDown
的包装类,为其添加IDropDown
字段您想要使用的基础控件实现,并将所有感兴趣的方法调用转发给所选实现。如果有很多方法,这很快就会变得乏味。