Bonjour,

Je m'arrache les cheveux depuis hier sur le problème suivant: Je cherche à afficher dans un DataGridView un combobox pour un choix d'objet.

Je vais prendre l'exemple de ces deux classes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class City
{
  public int ID { get; set; }
  public string Name { get; set; }
}
 
public class Person
{
  public int ID { get; set; }
  public string Name { get; set; }
  public City City { get; set; }
}
Et voici un exemple d'initialisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
// Création des villes
City paris = new City() { ID = 1, Name = "Paris" };
City londres = new City() { ID = 2, Name = "Londres" };
City madrid = new City() { ID = 3, Name = "Madrid" };
List<City> cities = new List<City>() { paris, londres, madrid };
 
// Création des personnes
// On ignore dans quelles villes sont max et bob
Person john = new Person() { ID = 1, Name = "John", City = paris };
Person deborah = new Person() { ID = 2, Name = "Deborah", City = londres };
Person max = new Person() { ID = 3, Name = "Max", City = null };
Person bob = new Person() { ID = 4, Name = "Bob", City = null };
List<Person> team = new List<Person>() { john, deborah, max, bob };
J'ai un DataGridView dans lequel j'affiche la liste de personnes de l'équipe (en utilisant la liste "team"). Je souhaite avoir une ComboBox pour l'édition de la ville associée à une personne.

J'ai défini la colonne City comme editable via ComboBox, j'ai donné en DataSource la liste "cities".

Je bloque à l'édition, je reçois une exception qui me dit que je ne peux convertir une String en City...

Si quelqu'un sait comment faire pour résoudre ce problème, je l'en remercie par avance.