web-dev-qa-db-ja.com

C#でのデータグリッドの行と列の数

データグリッドがあると考えてください。データグリッド内の行と列の数を見つける必要があります。 C#でこれを行うにはどうすればよいですか?

7
SyncMaster

DataGrid.Itemsプロパティは、DataGridのDataGridItemCollectionを表すDataGridItemsを返します。

DataGridItemは、レンダリングされたテーブルの1つの行を表します。また、DataGridItemは、番号を表すCellsプロパティを公開します。レンダリングされたテーブル内のテーブルセル(つまり、列)の数。

int rowCount = myGrid.Items.Count;

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

DataGridは、実際のDataItemを表します。

DataGrid dg = new DataGrid();

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

まず第一に、あなたの質問に答えるために:

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

または、データソースのタイプが確実にわかっている場合:

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

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

次に、追加したいのは、System.Windows.Forms.DataGridは表示ウィジェットコントロールであり、レコードのコンテナーではないということです。列数を調べるためのDataGrid.Rows.Countプロパティなどはありません。あなたがしなければならないことは、DataGridの後ろのDataSourceプロパティ(ほとんどの場合DataTable)を見て、そこから必要な情報を取得することです。

4
Bogdan M