Sas*_*ich 6 .net c# propertygrid typeconverter
我有一个datagridview,其中包含有关竞争对手的信息.我在PropertyGrid中显示每个copmetitor的属性.我希望其中一些属性(例如Degree,City,Institute)是带有从数据库中获取的值的dropbox.为此,我可以像这样创建一个自定义TypeConvertor
class DegreeTypeConverter : StringConverter
{
static string[] _valueList = { "Bachelor", "Master", "Student" };
public override bool GetStandardValuesSupported(
ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(
ITypeDescriptorContext context)
{
return true;
}
public override StandardValuesCollection GetStandardValues(
ITypeDescriptorContext context)
{
return new StandardValuesCollection(_valueList);
}
}
[TypeConverter(typeof(DegreeTypeConverter))]
public string Degree
{
get { return _degree; }
set { _degree = value; }
}
Run Code Online (Sandbox Code Playgroud)
但我想从数据库中获取valueList并且我有14个这样的属性,因此一些通用转换器将比14个转换器好得多,唯一的区别是:valueList.是否可以使用变量valueList创建TypeConverter(例如,在构造函数中作为参数传递给TypeConverter)?或者也许还有另一种方法可以在PropertyGrid中拥有一个带有变量值列表的Dropbox?希望Thnx能够提前清楚
在GetStandardValues方法中,您将获得一个上下文.使用context.Instance访问保存属性的对象.然后询问它以获得将为您提供数据库服务的服务提供商.它可以通过您自己的API,也可以从IServiceProvider派生并实现GetService,或者为什么不通过您的IOC容器作为单例获取它?
| 归档时间: |
|
| 查看次数: |
2584 次 |
| 最近记录: |