我正在尝试创建一个带有enum kind属性的自定义文本框(如textmode)。枚举值将来自数据库。但是枚举不能充满活力......还有另一种出路吗?
答案 0 :(得分:0)
最接近的是整数属性。
答案 1 :(得分:0)
枚举是编译时常量。如果数据库值在运行时不会更改,那么您始终可以使用codegen工具从数据库生成枚举值(在预编译时)。如果它们会改变,你可能只需要做一个字符串属性或类似的东西,而不是枚举。
答案 2 :(得分:0)
您必须编写自定义TypeConverter
才能完成此任务。
public class MyItemsConverter : TypeConverter
{
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
StringCollection values = new StringCollection();
// Connect to database and read values.
return new StandardValuesCollection(values);
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return (context != null);
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;
}
}
public class MyControl : WebControl
{
[TypeConverter(typeof(MyItemsConverter))]
public string MyItem { get; set; }
}