Я хочу иметь возможность отображать в сетке свойств выпадающий список, который показывает некоторое «строковое» значение, но возвращает значение «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;
}
}
Вот мое использование класса в элементе управления сеткой свойств
public class MyObjectProperty
{
[TypeConverter(typeof(MyObjectOptions))]
public int Id
{
get { return this.id; }
set { this.id = value; }
}
}
Как видите, я хочу сохранить идентификатор объекта, но хочу показать его имя в выпадающем списке ... Я пытаюсь использовать хеш-таблицу, но она не работает ...
Кстати - я использую версию 3.5 .Net, но использую только WinForm (не WPF).