2009-05-08 3 views

risposta

19

La proprietà DataGrid.Items restituisce un DataGridItemCollection che rappresenta il DataGridItems nel DataGrid.

Ogni DataGridItem è rappresentativo di una singola riga nella tabella di rendering. Inoltre, lo DataGridItem espone una proprietà Cells che rappresenta il n. di tablecell (in altre parole, le colonne) nella tabella di rendering.

int rowCount = myGrid.Items.Count; 

// Get the no. of columns in the first row. 
int colCount = myGrid.Items[0].Cells.Count; 
5

I DataGrid rappresentano dati effettivi.

DataGrid dg = new DataGrid(); 

dg.Items.Count; //Number of Items...i.e. Rows; 
dg.Items[0].Cells.Count; //Number of columns for that Items 
+0

+1 per aver letto la mia mente! Questa volta, tuttavia, sono stato qualche secondo più veloce! : P – Cerebrus

+0

haha. buon umore –

4

Prima di tutto, per rispondere alla tua domanda:

DataGrid dataGrid = new DataGrid(); 
int rowCount = dataGrid.BindingContext[dataGrid.DataSource].Count; 

o, se si sa per certo il tipo di DataSource:

int rowCount = ((DataTable)this.dataGrid.DataSource).Rows.Count; 
int columnCount = ((DataTable)this.dataGrid.DataSource).Columns.Count; 

((DataTable)this.dataGrid.DataSource).Columns.Count; 

secondo luogo di tutti, quello che ho voglio aggiungere è che un System.Windows.Forms.DataGrid è un controllo widget di visualizzazione, e non un contenitore per i record. Non esiste una proprietà DataGrid.Rows.Count o qualcosa di simile per scoprire il numero di colonne. Quello che devi fare è guardare dietro il DataGrid, nella proprietà DataSource, che nella maggior parte dei casi è un DataTable e prendere le informazioni che ti servono da lì.