C# datagridview zone de liste déroulante de la colonne de la source de données de la liste/dictionnaire/datatable
J'ai une table et une colonne est un entier IDENTIFIANT de clé étrangère d'une autre table de base de données.
J'ai un datagridview et je voudrais utiliser une zone de liste déroulante de la colonne pour permettre à l'utilisateur de changer la valeur. Mais au lieu d'utiliser les nombres entiers, il serait bon d'utiliser les noms.
J'ai essayé de créer un simple struct avec des membres du public int ID et le Nom de la chaîne; un dictionnaire et le regarda dans les énumérations (cependant les valeurs ne sont pas connues au moment de la compilation), mais pas eu quelque chose à travailler encore.
J'ai été en mesure de remplir la zone de liste déroulante avec les valeurs struct, mais pas en mesure de définir par programmation le point de menu sélectionné/index; c'est à dire, si l'ID "5" est dans la table de données, définissez la zone de liste modifiable est sélectionné pour la structure qui a un ID de 5.
Donc, pour être clair, je suis désireux:
gridview datasource's fk ID's
1
2
3
Foreign Key table:
ID Name
1 Name 1
2 Name 2
3 Name 3
Datagridviewcombobox colonne devrait être chargé avec trois éléments; doit s'afficher en tant que "Nom 1, Nom 2, Nom 3". Basé sur le contrôle gridview source de données de la FK, l'id de l'élément sélectionné pour chaque couleur.
OriginalL'auteur andrew | 2011-10-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir la
DataGridViewComboBoxColumn.Source de données
de la propriété, et ensuite utiliser leValueMember
etDisplayMember
propriétés afin de déterminer ce qui est montré dans leComboBox
. Le plus simple est probablement de charger votre FK valeurs dansDataTable
et de l'utiliser comme source de données. Pour votre exemple:Je ne suis pas sûr de savoir comment vous liez votre
DataGridView
votre premierDataTable
, mais vous pouvez associer leDataGridViewComboBox
colonnes avec une colonne spécifique dans votre originalDataTable
à l'aide deDataPropertyName
:OriginalL'auteur Jeff Ogata
OriginalL'auteur Denys Wessels