Quando si consente al controllo della griglia di generare automaticamente le colonne, esso enumera sostanzialmente le proprietà di tale oggetto e crea una colonna per ciascuna di esse. Non ha modo di sapere che vuoi mostrarlo come una griglia di valori di array.
È necessario creare un nuovo oggetto (come un elenco enumerabile di una classe) fuori dall'array con le proprietà a cui si desidera associare come colonne. Un modo rapido per farlo sarebbe quello di utilizzare un tipo anonimo, creato utilizzando una query LINQ. Qualcosa di simile:
string[][] Array = new string[100][];
for(int i = 0; i < 100; i++) // Set some values to test
Array[i] = new string[2] { "Value 1", "Value 2" };
dataGridView.DataSource = (from arr in Array select new { Col1 = arr[0], Col2 = arr[1] });
Page.DataBind();
Qui, stiamo iterando attraverso tutti i 100 elementi dell'array. Ogni elemento è una matrice di 2 stringhe. Stiamo creando un tipo anonimo da quelle due stringhe. Questo tipo ha due proprietà: Col1
e Col2
. Col1
verrà impostato sull'indice di matrice 0 e Col2
verrà impostato sull'indice di matrice 1. Quindi, stiamo creando la griglia per quell'enumerazione di tipi anonimi. Questo avrà un aspetto simile:

Ovviamente si può definire esattamente come le colonne verranno creati impostando AutoGenerateColumns
su False, e popolato la collezione Columns
. Questo può essere fatto in modo dichiarativo all'interno del tuo file ASPX.
fonte
2013-03-01 20:30:54
come si aspetta di vedere che informazioni nel GV? –
Che aspetto ha XAML per il controllo DataGrid? – ryrich
Per [x] [y] speravo che ogni riga rappresentasse la [X] ... e le colonne rappresentassero [Y], in modo che il contenuto di [2] [5] fosse visualizzato sul Datagrid nel 2a riga, 5 colonne. – phan