Newsgroup: it.comp.lang.visual-basic
Titolo: [NET] ancora sul databinding

Più che una domanda, una considerazione....
Prendiamo per esempio due controlli, un listbox e un datagrid (dico così
perchè è quello che ho fatto, probabilmente è lo stesso con due listbox o
due datagrid o altro....)
Associamoli alla stessa fonte dati, nel mio caso era una collection, ma
dovrebbe fare lo stesso con qualsiasi fonte. Lanciamo il programma.
Se selezioniamo un elemento della listbox, automaticamente viene
selelezionata la riga corrispondente sul datagrid, e viceversa, senza che si
sia detto nulla, nel codice, a livello di form.
Sinceramente.... è comodo ma non mi piace. I controlli dovrebbero essere
collegati tra di loro solo se lo impongo in modo esplicito, non solo per il
fatto di essere collegati alla stessa fonte.
Salutoni
Sergio

probabilmente con il databinding, viene gestito una sorta di cursore su
quella fonte.....
quindi, se clicchi su una listbox, imposti il cursore del db su un certo
record. Il cursore è lo stesso che viene gestito dagli altri controlli, ecco
perchè viene fatto il refresh automatico senza dire nulla......
deduco male?
good coding!!!
--
Damiani Liborio Igor
ig...@igordamiani.it
 - 
soft...@igordamiani.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 good coding!!!
anche a te.
Salutoni
Sergio

 penso tu deduca bene, quello che mi infastidisce è il principio.
Associarli alla stessa fonte dati  vuol dire lavorare in modalità
disconnessa.
Utilizzo di un DataSet, DataTable, DataView.
Per l'istanza della classe origine dei dati non si deve invocare, a fine
caricamento,
il metodo Dispose, altrimenti al ricevente non rimane nulla.
Quindi la classe può operare in modo disconnesso con tutti i dati in
memoria.
Logico che una variazione si rifletta su tutti i link che l'istanza
alimenta.
Mi sembra un metodo corretto, altrimenti a cosa serve lavorare disconnessi ?
Per evitare la sincronizzazione, un sistema è una seconda dichiarazione
tipo,
dim ds2 as dataset=ds1
.............
ed associare ds2 al secondo componente
Saluti
giuseppeD

 ed associare ds2 al secondo componente
uhm... provata?
Perchč cosě, a orecchio, ds1 *č* ds2, e qualsiasi cosa succeda a ds1 succede
anche a ds2.....
Salutoni
Sergio

 ha scritto nel messaggio
news:b7jl27$1nhur$1...@ID-173193.news.dfncis.de...

Hai ragione, che figuraccia.
Tre minuti con i ceci sotto le ginocchi nell'angolo piů buio bastano ?
Avevo una situazione leggermente diversa, pensavo che la variazione
dim ds2 as dataset=ds1
risolvesse il problema per entrambi.
posto la soluzione che evita il collegamento tra le due sorgenti.
I componenti sono:
ListBox
ComboBox
Protected Const DEFAULT_SORT As String = "ProductName ASC"
-------------------
Dim ds As New DataSet()
'Popolo il DataSet by un DataAdapter
 Dim dv As DataView
 dv = New DataView(ds.Tables("products"), "", DEFAULT_SORT,
DataViewRowState.OriginalRows)
'Alimento la combo
   With cb1
     .DataSource = dv
     .DisplayMember = "ProductName"
     .ValueMember = "ProductID"
End With
'Clono il DataSet
  Dim ds2 As DataSet = ds
'Alimento la Lista
With lb1
  .DataSource = ds2.Tables("Products")
  .DisplayMember = "ProductName"
  .ValueMember = "ProductID"
End With
'''Fine codice
Pensavo di ottenere lo stesso risultato sostituendo il DataView con il
DataSet.
Invece ....
Mai dare nulla per scontato !
Salve
giuseppeD

 currentrecord e viceversa.
In VB6 se usi controlli ADO se non ricordo male esiste una proprietà da
impostare per correlare due listbox od altro tramite la selezione.