Domanda

Sono improvvisamente torna a WinForms, dopo anni di sviluppo web, e sto avendo problemi con qualcosa che dovrebbe essere semplice.Ho un ArrayList di oggetti di business associato a un Windows Form DataGrid.Vorrei che l'utente sia in grado di modificare le celle, e una volta terminato, premere un pulsante Salva.A questo punto vorrei scorrere tutte le righe e le colonne in DataGrid per individuare eventuali modifiche e salvarle nel database.Ma non riesco a trovare un modo per accedere al DataGrid le righe.

Potrai anche desidera convalidare le singole celle in tempo reale, come si sono modificati, ma sono abbastanza sicuro che si può fare.(Magari non con un ArrayList come DataSource?) Ma come per la ripetizione degli DataGrid, Sono abbastanza sorpreso, non mi sembra possibile.

Devo proprio roba mia azienda gli oggetti dati in tabelle di dati al fine di utilizzare il datagrid?

È stato utile?

Soluzione

foreach(var row in DataGrid1.Rows)
{
  DoStuff(row);
}
//Or ---------------------------------------------   
foreach(DataGridRow row in DataGrid1.Rows)
{
  DoStuff(row);
}
//Or ---------------------------------------------
for(int i = 0; i< DataGrid1.Rows.Count - 1; i++)
{
  DoStuff(DataGrid1.Rows[i]);
}

Altri suggerimenti

object cell = myDataGrid[row, col];

C'è qualcosa nel form di windows 3.0 che è molto meglio che in 1.1

Non so 3.0, ma è possibile scrivere codice in VS 2008 che viene eseguito sul .NET framework 2.0.(Così, si arriva a utilizzare la più recente linguaggio C#, ma è possibile utilizzare solo il 2.0 biblioteche)

Questo si ottiene Generici (List<DataRow> invece di quelle GodAwful ArrayLists) e una tonnellata di altre cose, potrete letteralmente finisce per 3x meno codice.

Ah, ero solo il test di tutti, ancora una volta!:) La vera risposta è, è raramente necessario iterare il datagrid.Perché anche quando l'associazione a un ArrayList, l'associazione è a 2 vie.Ancora, è utile sapere come itereate la griglia direttamente, è possibile salvare un paio di righe di codice ora e poi.

Ma NotMyself e Orion ha dato il meglio di answers:Convincere le parti interessate a passare a una versione superiore di C#, per risparmiare sui costi di sviluppo e aumentare la manutenzione e extensability.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top