J'ai une "zone de liste déroulante" et j'en suis tellement heureux que j'ai même commencé à utiliser d'autres combobox. Il prend l'objet combobox par référence avec l'ID de "l'ensemble de valeurs" (ou ce que vous voulez l'appeler) d'une table et ajoute les éléments et leurs valeurs respectives (qui diffèrent) et fait le travail. J'ai récemment eu la brillante idée d'utiliser des comboboxes dans un gridview, et j'ai été heureux de constater que cela fonctionnait JUSTE COMME une seule combobox, mais en remplissant tous les comboboxes dans la colonne donnée en même temps.Remplissage d'éléments et de valeurs ComboBoxDataColumn
ObjComboBox.Items.Add("yadayada");
//works just like
ObjComboBoxColumn.Items.Add("blablabla");
Mais quand je commencé à planifier comment remplir ces comboboxes je l'ai remarqué: Il n'y a pas de propriété « Valeurs » dans ComboBoxDataColumn.
ObjComboBox.Values = whateverArray;
//works, but the following doesn't
ObjComboBoxColumn.Values = whateverArray;
Questions: 0 -
Comment puis-je ses valeurs peuplent? (Je suppose que c'est aussi simple, mais utilise un autre nom)
1 - Si cela fonctionne comme une combobox, quelle est l'explication pour ne pas avoir cet attribut?
----- [EDIT] ------
J'ai vérifié la citation de Charles, et j'ai pensé que je devais changer ma façon de peupler ces mauvais garçons. Au lieu de boucler les chaînes et de les insérer une par une dans la liste déroulante, je devrais saisir les champs que je veux remplir dans une table, et définir une colonne de la table comme "valeur", et une autre comme "affichage" . Donc, je l'ai fait:
ObjComboBoxColumn.DataSource = DTConfig; //Double checked, guaranteed to be populated
ObjComboBoxColumn.ValueMember = "Code";
ObjComboBoxColumn.DisplayMember = "Description";
Mais rien ne se passe, si j'utilise le même objet que si:
ObjComboBoxColumn.Items.Add ("StackOverflow");
Il est ajouté.
Il n'existe aucune fonction DataBind().
Il trouve les deux colonnes, et c'est garanti ("Code" et "Description") et si je change leur nom en nonexistant cela me donne une exception, donc c'est bon signe.
----- [EDIT] ------
J'ai une table dans SQL Server qui est quelque chose comme
Code | text
-----
1 | foo
2 | bar
Il est simple, et avec d'autres comboboxes (en dehors de gridviews) j'ai boucle avec succès peuplé à travers les lignes et en ajoutant les textes:
ObjComboBox.Items.Add(MyDataTable.Rows[I]["MyColumnName"].ToString());
et d'obtenir toutes les valeurs, en ajoutant dans un tableau, et comme le mettre:
ObjComboBox.Values = MyArray;
Je voudrais remplir mes comboboxColumns tout aussi simplement que je fais avec comboboxes.
Vous ne sembles pas désagréable à all.Everyone connaît le framework .NET ainsi que C# sont bien documentés, et je ne veux pas paraître ingrate, mais Je calculerais qu'environ 60 mille des 81 mille questions sur C# provenaient de personnes qui ont lu la documentation, ne l'ont pas comprise, l'ont mal interprétée ou ne l'ont pas lue du tout. Je suis parmi ceux-là, j'en ai lu quelques-uns à ce sujet, mais je n'ai pas compris comment le faire facilement, j'ai vérifié sur S.O. et je n'ai pas trouvé de question à ce sujet, j'ai alors décidé de poser une question à ce sujet, et peut-être que d'autres personnes pourront le trouver à l'avenir, mais merci! – Marcelo
@MarceloRamires: Vous avez probablement raison. La documentation que j'ai citée aide-t-elle? Il y a quelques exemples sur cette page aussi. Si vous êtes toujours confus, je pourrais vous donner un exemple plus simple. –
Je serais heureux =) J'ai mis à jour ma question – Marcelo