Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Sncronizzazione tra MDI Form
sabato 24 aprile 2010 - 16.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
jonquerido75
Profilo
| Newbie
1
messaggi | Data Invio:
sab 24 apr 2010 - 16:37
Buongiorno a tutti,
sto cercando un pattern di programmazione corretto (o quantomeno migliore di quello che ho scelto finora) per la mia applicazione client.
L'applicazione è costituita da un serie di finestre MDI Child che mostrano livelli diversi di dettaglio delle informazioni contenute in un DataSet.
Il primo MDI Child ad esempio mostra un elenco di viaggi: un datagridview tramite BindingSource è collegato ad una DataTable
Il secondo MDI child mostra il dettaglio del viaggio (destinazioni) selezionato sul primo MDI: alcuni campi sono collegati alla DataTable del primo livello (viaggi) mentre un altro DataGridView (con BindingSource) mostra i dettagli di questo viaggio.
Fin qui tutto ok, grazie al bindingsource se seleziono un viaggio nella prima finestra automaticamente ho il dettaglio sulla seconda, così come se modifico dei dati li vedo aggiornati su entrambe le finestre.
Alcune operazioni tuttavia generano dei problemi: ad esempio quando mi sposto tra un viaggio e l'altro sulla prima finestra provoco una serie di eventi sulla secondo (refresh dei dati, ricalcolo di alcuni valori, operazioni varie) che possono richiede qualche istante per essere completati e che si basano sulla lettura dei dati del viaggio correntemente selezionato. Tuttavia se lo spostamento tra un viaggio e l'altro avviene troppo in fretta potrei generare più eventi di refresh sulla seconda finestra ma quel che è peggio è che durante le operazioni di refresh il bindingsource si è spostato di posizione e mi ritrovo a fare delle operazioni un po' sul viaggio precedentemente selezionato e un po' su quello successivo e l'operazione fallisce o peggio si corrompe il datatable sottostante (è un problema segnalato da MS generato dall'accesso concorrente ai datatable
http://support.microsoft.com/kb/932491/it
).
->Selezione Viaggio 1 (su prima finestra)
-> Operazione Refresh A su viaggio 1 (su seconda finestra)
-> Operazione Refresh B su viaggio 1 (su seconda finestra)
->Selezione Viaggio 2 (su prima finestra): il bindingsource si sposta sul viaggio 2 per entrambe le finestre
-> Operazione Refresh C su viaggio 2 (su seconda finestra) <-----------------------------ERRORE!!!!!!!!!!!!
Spero di essere riuscito ad esemplificare il caso.
Attualmente il tutto si basa sulla generazione di un evento sulla prima finestra e sulla presenza di un listener sulla seconda che si occupa del refresh dei dati.... ma così facendo appunto ho il problema che più operazioni si possono sovrapporre.
Qualche suggerimento?
Grazie
Jonathan Zanardi
Torna su
Stanze Forum
Elenco Threads
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 !