Je souhaite être en mesure d'afficher dans une grille de propriétés une liste déroulante qui affiche une valeur de "chaîne" mais renvoie une valeur "int"..Net PropertyGrid DropDownList - valeur de retour différente de la valeur d'affichage
Par exemple, laisser l'ensemble je suis arrivé cette classe:
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;
}
}
Voici mon utilisation de classe dans le contrôle PropertyGrid
public class MyObjectProperty
{
[TypeConverter(typeof(MyObjectOptions))]
public int Id
{
get { return this.id; }
set { this.id = value; }
}
}
Comme vous pouvez le voir, je veux stocker l'id du objet, mais je veux montrer son nom dans la liste déroulante ... J'essaie d'utiliser une hashtable mais ça ne fonctionne pas ...
BTW - J'utilise la version 3.5 de .Net mais je n'utilise que WinForm (pas WPF).