【发布时间】:2012-01-13 15:52:56
【问题描述】:
我正在创建几个不同的自定义控件,每个控件都实现不同的基本控件,但它们都将获得一些共同的属性和功能。所以我想将那些通用属性(以及它们的通用 getter 和 setter)和功能的复制放到一个抽象类中。但是我很难围绕如何构建控件及其基础来实现我的抽象类和我正在构建的基础 Web 控件。谁能帮帮我?
我正在构建的一些控件
public class AssetDataStringControl : TextBox
public class AssetDataIntegerControl : TextBox
public class AssetDataUrlControl : CompositeControl
public class AssetDataListBoxControl : ListBox
public class AssetDataDropDownControl : DropDownList
我的抽象类
public abstract class AssetDataInputControlBase<T> : Control,
IAssetDataInputControl<T>
{
protected virtual int AssetId
{
get
{
object o = ViewState["AssetId"];
return o == null ? 0 : (int)o;
}
set { ViewState["AssetId"] = value; }
}
protected virtual AssetStructureField StructureField
{
get
{
object o = ViewState["StructureField"];
return o == null ? null : (AssetStructureField)o;
}
set { ViewState["StructureField"] = value; }
}
public abstract T DataField { get; set; }
}
【问题讨论】:
标签: design-patterns inheritance custom-controls class-design