2010-06-24 8 views
0

Ok, je suis sûr qu'il me manque quelque chose d'évident ici, mais je ne peux pas le comprendre. J'ai un DataGridView dont je spécifie les colonnes dans le code, avec tous sauf 1 défini pour les cellules de zone de texte. La dernière colonne est réglé sur une cellule combobox qui est à nouveau poplulated dans le code:DataGridViewCombo ne pas afficher

DataGridViewComboBoxColumn TransferStatusColumn = new DataGridViewComboBoxColumn(); 
    Lookups.Lookups service = new Lookups.Lookups(); 

    List<Lookup> lookups = service.GetGenericLookup("LG_L_TransferStatus_Get", "ID", "Description"); 
    Lookup blank = new Lookup(); 
    blank.LookupID = 0; 
    blank.Description = ""; 
    TransferStatusColumn.Items.Add(blank); 
    foreach (Lookup lkp in lookups) 
    { 
     TransferStatusColumn.Items.Add(lkp); 
    } 
    TransferStatusColumn.DisplayMember = "Description"; 
    TransferStatusColumn.ValueMember = "LookupID"; 
    TransferStatusColumn.DataPropertyName = "TransferStatus"; 
    TransferStatusColumn.HeaderText = "Status"; 
    TransferStatusColumn.ReadOnly = false; 

    LoanBrokerTransfersDataGridView.Columns.Add(TransferStatusColumn); 

Le problème que j'ai est que lorsque le DataPropertyName est défini, le ComboBox ne s'affiche - Il est là, mais rien ne se passe quand Je clique dessus. Si je commente cette ligne, elle s'affiche et fonctionne correctement. J'ai inspecté le contrôle et dans les deux cas la collection d'articles est correctement remplie.

EDIT:

Je suis INITIALISATION les colonnes du DataGridView comme décrit, puis définir le DataSource à un DataTable qui contient ces colonnes. Toutes les colonnes ont le DataPropertyName fixé afin de se lier au code DataTable

Liaison de données est tout simplement:

LoanBrokerTransfersDataGridView.DataSource = dt; 

Où dt est un datatable

+0

Pourriez-vous s'il vous plaît mettre à jour votre code afin qu'il contienne l'endroit où vous définissez la liaison de données? En outre, vous ne devriez pas avoir besoin d'initialiser quoi que ce soit manuellement. – Grzenio

Répondre

0

Ok, j'ai eu un problème dans ma Sql, j'ai corrigé ça et tout fonctionne bien.

1

DataPropertyName est utilisé pour la liaison de données. Lorsque vous le définissez sur quelque chose, votre contrôle commence à afficher la source de données qui y est liée. Parce que vous n'utilisez pas la liaison de données, vous devez juste le laisser vide.

+0

Je charge une datatable et un paramètre en tant que datasource de la vue de données - J'ai mis à jour ma question pour inclure cette information – Macros