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
Problema DataBinding ComboBox
domenica 22 luglio 2007 - 18.07
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
eddievh
Profilo
| Newbie
2
messaggi | Data Invio:
dom 22 lug 2007 - 18:07
Per prima cosa un saluto a tutti, leggo da molto il froum ma non ho mai postato. Ora sono in difficoltà e
spero mi possiate dare una mano. In futuro spero di poter contraccambiare.
Ho una situazione di questo tipo:
- una tabella articoli con vari dati fra cui una Categoria e una Sottocategoria
- una tabella categorie ( chiave primaria Nome)
- una tabella sottocategorie (chiave primaria Nome) collegata alla precedente con una chiave esterna chiamata Parent
Per cui ogni categoria ha delle sottocategorie
Carico una DataGridView (DGV) con i dati della tabella articoli
artDA.Fill(artDS, "ARTICOLI") ' riempie il DataSet attraverso il DataAdapter
' Collego il Binding Source
artBS.DataSource = artDS
artBS.DataMember = "ARTICOLI"
' Popolamento DGV
articoliDGV.DataSource = artBS
Faccio una cosa simile anche per la Combo Categorie (CMB1)
artCatDA.Fill(artCatDS, "CATEGORIE")
artCatBS.DataSource = artCatDS
artCatBS.DataMember = "CATEGORIE"
e li collego insieme in modo che siano sincronizzati
CMB1.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", artBS, "Categoria", True, _ DataSourceUpdateMode.OnPropertyChanged))
CMB1.DataSource = artCatBS
CMB1.DisplayMember = "Nome"
CMB1.FormattingEnabled = True
CMB1.ValueMember = "Nome"
A questo punto quando seleziono una riga della DGV mi carica correttamente la rispettiva categoria nella CMB1 attraverso
la quale posso cambiarla con una delle altre disponibili
E fin qua tutto OK. Veniamo al problema.
Ho una seconda Combo che rappresenta le sottocategorie (CMB2). Se faccio la stessa cosa che ho fatto con la CMB1
mi visualizza correttamente la sottocategoria della riga selezionata ma ovviamente permette di selezionare tutte le sottocategorie
indipendentemente dalla categoria principale selezionata in CMB1.
Quello che voglio è fare in modo che la combo delle sottogategorie visualizzi solo gli elementi che hanno come padre la categoria selezionata in CMB1.
Non so come fare a fare questo triplice collegamento quindi spero che qualcuno mi possa aiutare.
Spero di essermi spiegato bene, comunque sono pronto ad ogni chiarimento. Grazie in anticipo!
Ciao!!!
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
dom 22 lug 2007 - 18:23
Se usi due bindingsource per le due combo puoi fare come questo esempio tratto dal mio blog:
http://community.visual-basic.it/lucianob/archive/2007/03/01/18705.aspx
Private Sub BindingSource1_PositionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingSource1.PositionChanged
Dim dr As DataRowView = CType(BindingSource1.Current, DataRowView)
BindingSource2.Filter = "ID = " & CType(dr("IdAttributo"), String)
End Sub
eddievh
Profilo
| Newbie
2
messaggi | Data Invio:
dom 22 lug 2007 - 20:30
Il filtro funziona perfettamente.
Grazie
Purtroppo mi da problemi con i valori nulli.
Nel mio programma le sottocategorie possono essere lasciate vuote quindi non appare nessun valore nella riga della DGV
e non dovrebbe apparire niente neanche nella combo.
Con il filtro invece viene selezionata subito la prima voce e non posso lasciare la combo vuota.
Qualche suggerimento? (Anche con altri sistemi)
Ciao
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 !