2009-05-22 6 views
5

Sto cercando di associare un DataGridView a un elenco, in cui MyObject sembraDataGridView legandosi ad un List <>, alcune proprietà non dovrebbe essere mostrato

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

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

voglio solo una proprietà da visualizzare, ma invece Ottengo un'altra colonna aggiunta al mio DataGridView in cui viene visualizzata anche la Proprietà2. Come posso evitare che venga aggiunto?

risposta

9

Se mai desidera che la proprietà visualizzata:

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

In caso contrario, come già detto - impostato AutoGenerateColumns false e aggiungerli manualmente.

2

Sembra che la proprietà AutoGenerateColumns del controllo DataGridView sia impostata su True. Puoi impostarlo su False oppure utilizzare il metodo .Columns.Remove per rimuovere la colonna che non vuoi vedere.

0

Credo che sia necessario impostare manualmente le colonne, come ha detto Henk. Tuttavia potresti voler impostare più proprietà rispetto al suo esempio. Questo è quello che ho fatto in un progetto:

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(); 

Credo che i lavori di cui sopra. Se ottieni una strana verifica delle eccezioni per essere certo che le colonne/le celle abbiano definito gli stili di cella predefiniti.

Problemi correlati