1

我想我知道这个问题的答案,但我希望有人有一个巧妙的解决方案。我们目前使用两种下拉控件(Telerik 和 .Net)。我希望将这些组合成一个控件,但在用户友好的设计中挣扎。

理想情况下,控件将在设计文件中创建,具有布尔属性,例如“SimpleBox”,以确定要继承的控件类型。然后将在代码隐藏设计文件中生成实例化,然后构造函数将动态加载基础(这是不可能的)。对我来说,简单的解决方案是创建一个 IDropDown 接口,然后让工厂创建正确的接口。唯一真正的问题是每次都必须手动编写实例化,这很麻烦,而且根本不会加快我们的进程。

虽然这不是直接可能的,但我正在寻找一种类似于工厂的解决方案,该工厂在对象构造函数中运行以基于 bool 属性设置基础。

干杯

4

1 回答 1

4

您可能想在这里查看组合/委托而不是继承。

本质上,与其直接扩展任一类,不如创建一个扩展Control(或类似的低级)和实现的包装类,为您要使用的底层控件实现IDropDown添加一个字段,并将每个感兴趣的方法调用转发给选定的IDropDown执行。但是,如果有很多方法,这很快就会变得乏味。

于 2010-10-11T22:24:44.553 回答