2009-05-22 9 views
5

Je suis en train de lier un DataGridView à une liste, où MyObject ressembleReliure DataGridView à une liste <>, certaines propriétés ne doivent pas figurer

class MyObject 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
} 

//List<MyObject> objects; 
grid.Columns[0].DataPropertyName = "Property1"; 
grid.DataSource = objects; 

Je veux seulement une propriété à afficher, mais Je reçois une autre colonne ajoutée à mon DataGridView où la propriété2 est également affichée. Comment puis-je l'empêcher d'être ajouté?

Répondre

9

Si vous ne voulez que la propriété affichée:

class MyObject 
{ 
    public string Property1 { get; set; } 
    [Browsable(false)] 
    public string Property2 { get; set; } 
} 

Dans le cas contraire, comme déjà indiqué - définir AutoGenerateColumns false et les ajouter manuellement.

2

Il semble que la propriété AutoGenerateColumns de votre contrôle DataGridView soit définie sur True. Vous pouvez le définir sur False ou utiliser la méthode .Columns.Remove pour supprimer la colonne que vous ne souhaitez pas voir.

0

Je crois que vous devez configurer les colonnes manuellement, comme l'a dit Henk. Cependant, vous voudrez peut-être définir plus de propriétés que dans son exemple. C'est ce que j'ai fait dans un projet:

DataGridView dataGridView = new DataGridView(); 
dataGridView.AutoGenerateColumns = false; 

DataGridViewColumn columnA = new DataGridViewTextBoxColumn(); 
columnA.DataPropertyName = "propertyA"; 
columnA.HeaderText = "Column A"; 
columnA.Name = "columnA"; 

DataGridViewColumn columnB = new DataGridViewTextBoxColumn(); 
columnB.DataPropertyName = "propertyB"; 
columnB.HeaderText = "Column B"; 
columnB.Name = "columnB"; 

dataGridView.Columns.Clear(); 
dataGridView.Columns.Add(columnA); 
dataGridView.Columns.Add(columnB); 
dataGridView.AutoResizeColumns(); 

Je crois que ce qui précède fonctionne. Si vous obtenez une exception étrange, vérifiez que les colonnes/cellules ont des styles de cellule par défaut définis.

Questions connexes