Attacher une liste a un combo

Résolu
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 4 avril 2008 à 16:20
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 5 avril 2008 à 11:22
Bonjour,

Je ne parviens pas a attacher une liste a un ComboBox

Je declare une liste

class Hotel
{
  int Id;
  int Nom;
}

List <Hotel> Hotels=new List();

cmb.DataSource=Hotels;

Mais je ne sais pas comment déclarer le DisplayMember (Nom)
et le ValueMember (Id)

11 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
5 avril 2008 à 11:05
Sorry j'ai pas conservé mon teste

<hr />
-My Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
4 avril 2008 à 18:09
Bonjour,
Voici une solution:

public
struct
Hotel
{
  
public
int Id {
get;
set; }
  
public
string Name {
get;
set; }
}

var h =
new
List<
Hotel>(4)
{
  
newHotel() { Id 1, Name
"Hotel1" },
  
newHotel() { Id 2, Name
"Hotel2" },
  
newHotel() { Id 3, Name
"Hotel3" },
  
newHotel() { Id 4, Name
"Hotel4" }
};

this.comboBox.DataSource = h;

this.comboBox.DisplayMember =
"Name";

this.comboBox.ValueMember =
"Id";

<hr />
-My Blog-
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 5
4 avril 2008 à 18:44
Merci Bidou

Ca marche aussi avec une classe je suppose ?

En tout cas le vieux combattant du C que je suis n'a pas encore assimilé ces concept de get et set machin truc

Quelqu'un vient aussi de me dire de faire

    class Rue
    {
      public int Id;
      public string Nom;
      public override string ToString()
      {
        return Nom;
      }
    };

Ca marche aussi mais ca m'aide pas plus a comprendre le bingz
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
4 avril 2008 à 19:02
ToString est une mauvaise idée: C'est une méthode qui est au niveau de la classe object et qui sert à décrire une classe, normalement pas à la représentée visuellement par un string pour l'utilisateur. De plus, si tu fais ça dans un struct, tu vas avoir du boxing/unboxing ce qui n'est vraiment pas le pied niveau perf'.

Utilise la méthode ci-dessus (avec une classe si tu veux) mais pas ToString !
Qui t'as dit d'utiliser ça !?!!?!

<hr />
-My Blog-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 5
4 avril 2008 à 19:14
Salut Bidou

QUI ? : quelqu'un sur codeprojet ?

Classe ou struct : toujours la question.
Dans les deux cas ca marche asser bien
Je n'ai pas beaucoup d'éléments (+/- 1000)

Mais peut etre que struct est plus performant dans le cas présent.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
4 avril 2008 à 19:18
struct sera certainement MOINS performant avec toString !!!!

<hr />
-My Blog-
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 5
4 avril 2008 à 19:23
Ok,

Il est déja aux oubliettes, j'ai pris ta solution !

Reste classe ou struct ?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
4 avril 2008 à 19:29
class toString : moyen, to string c'est pas fait pour etre représenté graphiquement
class avec property (premier exemple) : OK
struct avec toString: non ! ((un)boxing!)
struct avec property: pas bon pour les collections

Je fais vite qqe testes de perf' pour m'assurer que je ne raconte pas d'annerie

<hr />
-My Blog-
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
4 avril 2008 à 19:37
Bon la struct prend bien plus de place en mémoire, c'est logique, donc de ce point de vue une class c'est bien mieux 
Par contre, niveau performance j'arrive +/- à la même chose, bizarre, j'aurais pensé que ça serait plus rapide avec toString sur la class plutot que la struct, je ne comprends pas pas trop pourquoi...

<hr />
-My Blog-
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 5
4 avril 2008 à 19:48
Salut

<<
Bon la struct prend bien plus de place en mémoire, c'est logique, donc de ce point de vue une class c'est bien mieux 
>>

Ok mais dans quel contexte ?
Car a priori class ou struct l'information utile stoquée sera la meme
Je comprends qu'on accede aux classes via des pointeurs et que donc dans certains cas il n'y a pas recopie d'information et que dans ces cas on gagne de la place mais dans quel contexte a tu fait ton evaluation !
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 5
5 avril 2008 à 11:22
Pas grave !

Merci beaucoup en tout cas.

Tant que je te parle ici, j'ai du faire un roll back de mon truc de binary_stream_reader, je poste un comment dans la discussion
0