Uno dei “problemi” da risolvere durante la gestione degli oggetti DataGridView collegati ad una tabella tramite BindingSource è quella di “riuscire” a inizializzare con dei propri dati le nuove righe generate.
Tra gli eventi di BindingSource c’è AddingNew.
Come si potrà notare l’esempio di MSDN è del tutto inutilizzabile e non funzionante in quanto prende i dati da un metodo inesistente “democustomer” tralasciando la parte più importante!.
L’evento AddNew gestito:
'serve per attribuire valori calcolati a caso
Dim rnd As New System.Random(DateTime.Now.Second)
'definizione di un oggetto di tipo DataRowView
'ogni riga visualizzata è rappresentata da un oggetto
'di tipo DataRowView
Dim rowView As DataRowView = CType(BindingSource1.List, DataView).AddNew
'a sua volta DataRowView è collegato ad un DataRow il quale è collegato all'origine dati
Dim newRow As DataRow = CType(rowView.Row, DataRow)
'attribuzione di valori arbitrari
rowView("Descrizione") = String.Format("{0} {1}", "Test", rnd.Next(1, 100))
rowView("Valore") = Math.Round(rnd.NextDouble() * 100, 3)
'scrittura nell'oggetto sottostante in creazione
e.NewObject = rowView
Nessun commento:
Posta un commento