DataGridView Binding BindingList

venerdì 27 novembre 2015 - 15.18
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010

mmjc23 Profilo | Newbie

Buon giorno a tutti.

Sto provando ad utilizzare la preziosa funzione offerta dal DataGridView per effettuare il Binding dei dati da una BindingList; ho però un problema nella gestione delle eccezioni
Nella proprietà della classe della BindingList, vorrei generare un'eccezione se il valore impostato dall'utente, non soddisfa alcune condizioni.
Con mio grande stupore, ho notato che se viene generata un'eccezione nella proprietà della classe, questa viene gestita dall'evento "DataGridView_DataError" che è proprio quello che vorrei fare; il problema è che si presentano due comportamenti strani:
-Se sto eseguendo il Debug mediante VisualStudio, l'esecuzione del codice, si interrompe sulla riga dove alzo l'eccezione ma, ripremendo "play", l'esecuzione riprende normalmente passando per l'evento "DataGridView_DataError". Come mai si interrompe se sono in debug, mentre non c'è alcun arresto se eseguo direttamente l'exe? Probabilmente perchè non gestisco direttamente l'eccezione...ma come fare a gestirla?
-Una volta alzata l'eccezione, si scatena l'evento "DataGridView_DataError" e nella variabile "e.Exception", mi trovo correttamente il mio testo dell'eccezione specificato; quando però continuo l'esecuzione del codice, mi si scatena nuovamente l'evento "DataGridView_DataError" ma la variabile "e.Exception" è Nothing. Come mai si scatena due volte l'eccezione? (Ho notato che la prima volta, la variabile "e.Context", è valorizzata a "Commit", la seconda volta, a "Parsing Or Commit"). Quando, invece, l'evento "DataGridView_DataError" viene scatenato automaticamente dal "DataGridView" (ad esempio se viene digitata una stringa in un campo numerico), l'evento scatta solo una volta.

Posto un po' di codice di esempio

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

GRAZIE
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5