2012-08-01 2 views
1

J'essaye de placer un de mes champs pour être une liste déroulante sur un datagridview sans beaucoup de code manuellement. Actuellement, j'utilise AutoGenerateColumns = false et en créant le colonnes et en les ajoutant un par un.Comment lier une liste déroulante à un datagridview sans construire les colonnes manuellement

dataGridView3.AutoGenerateColumns = false; 
DataGridViewComboBoxColumn reasonCode = 
    new DataGridViewComboBoxColumn() { 
             DataPropertyName = "REASON", 
             HeaderText = "Reason Code" 
            }; 
dataGridView3.Columns.Add(reasonCode); 

Cela fonctionne, mais peut être fastidieux à maintenir lorsque j'ajoute des colonnes. Quand je laisse le contrôle générer automatiquement des colonnes, c'est très simple, mais je ne sais pas comment faire pour montrer la combobox.

La question est: Y a-t-il un moyen de configurer le datatable étant lié de sorte que le datagridview puisse savoir comment afficher mon combobox? Ou y a-t-il un moyen plus efficace de le faire?

Presque toutes mes colonnes se génèrent parfaitement, c'est juste cette combobox qui me force à les créer toutes manuellement.

Répondre

0

Vous pouvez essayer d'ajouter manuellement votre DataGridViewComboBoxColumn manuellement et puis en réglant AutoGenerateColumns sur true pour générer les colonnes restantes. Je n'ai pas testé cela, donc je ne sais pas si cela va résoudre vos problèmes.

De MSDN - DataGridView.AutoGenerateColumns Property:

Les colonnes sont générées automatiquement lorsque cette propriété est définie sur true et les propriétés DataSource ou DataMember sont définis ou modifiés. Les colonnes peuvent également être générées automatiquement lorsque la propriété AutoGenerateColumns passe de false à true. Si cette propriété est vraie et que DataSource est modifié de sorte qu'il existe des colonnes ne correspondant pas aux colonnes de la valeur DataSource précédente, les données des colonnes non mises en correspondance sont ignorées. Cette propriété est ignorée si les propriétés DataSource ou DataMember ne sont pas définies.

(caractères gras ajoutés)

Questions connexes