我希望能够在属性网格中显示一个下拉列表,该下拉列表显示一些“字符串”值但返回一个“int”值。
例如,让我得到这个类:
public class MyObjectOptions : StringConverter
{
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
MyObjectCollection mm = new MyObjectCollection();
List<String> names = new List<String>
foreach (MyObject m in mm)
{
m.Id // Need to store this somewhere ...
names.Add(m.Name);
}
return new StandardValuesCollection(name);
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;
}
}
这是我在 propertygrid 控件中的类使用
public class MyObjectProperty
{
[TypeConverter(typeof(MyObjectOptions))]
public int Id
{
get { return this.id; }
set { this.id = value; }
}
}
如您所见,我想存储对象的 id,但我想在下拉列表中显示它的名称...我尝试使用哈希表,但它不起作用...
顺便说一句 - 我使用 .Net 3.5 版,但我只使用 WinForm(不是 WPF)。