databinding su RadioButton in un GroupBox

lunedì 20 ottobre 2008 - 21.58

andyv1957 Profilo | Newbie

In una form ho tre RadioButton, compresi in un GroupBox, sui quali non riesco a far funzionare il databinding.
Tutti i tre devono essere checkati (o de-checkati) dal valore di un campo di un database Access (Es. se il campo contiene 1 il primo verrà checkato ed il secondo e il terzo verranno de-checkat, ecc) .
Ho utilizzato un DataSet e un DataAdapter con una Table generata di default dal sistema.
Penso che tra le opzioni previste negli automatismi di VB 2008 (Express) esista la possibilità di poter discriminare l'attivazione o la disattivazione di questi oggetti, come avviene da codice, ma non riesco a trovarne traccia.
Come posso risolvere questo problema ? Qualcuno può aiutarmi ?
Grazie.

alexmed Profilo | Guru

Ciao
Intendi una cosa del tipo:

Dim myValue As Integer

Select Case myValue
Case 1 'Il mio valore è 1
Me.CheckBox1.Checked = True
Me.CheckBox2.Checked = False
Me.CheckBox3.Checked = False
Case 2 'Il mio valore è 2
Me.CheckBox1.Checked = False
Me.CheckBox2.Checked = True
Me.CheckBox3.Checked = False
Case 3 'Oppure Case Else
Me.CheckBox1.Checked = False
Me.CheckBox2.Checked = False
Me.CheckBox3.Checked = True
End Select


Ciao

andyv1957 Profilo | Newbie

Ciao.

Si, è proprio ciò che voglio fare. Solo che il tuo esempio si riferisce ad un utilizzo dei radiobutton da codice, come avevo fatto
fino ad oggi. Adesso ho impostato il mio programma con il binding dei controlli alla fonte dei dati, sempre da codice. Fin quando
avevo delle sole TextBox non ho avuto problemi, adesso che devo aggiungere i RadioButton i problemi sono comparsi.
Il fatto, è che la serie di RadioButton è vincolata ad un campo del database (Access) e non si possono utilizzare le strutture
IF ENDIF o altre, perlomeno come avevo fatto fino ad oggi. Forse si devono usare in qualche altra parte.
Credo che ci siano altri modi per comandare questi oggetti attraverso il binding, solo che non riesco a trovare il modo.

Ciao.

alexmed Profilo | Guru

Ciao
Vediamo se ho capito.

Questa dovrebbe essere la riga di codice che lega il RadioButton al DB

Me.RadioButton1.DataBindings.Add(New Binding("Checked", Me.myTable_BindingSource, "nome_colonna", True))
e questa serve per eliminarlo
Me.RadioButton1.DataBindings.Clear()

Quello che non mi è chiaro è come fare a impostare 3 controlli con un campo del DB senza fare un ciclo.

Ciao

Lanello Profilo | Senior Member

ciao ragazzi,

io non uso MAI il databinding proprio per questi motivi, è troppo vincolante secondo me, ma cmq visto che vi vedo un po in difficoltà ho dato un'occhiata in giro e se sapete un po d'inglese non dovreste trovare difficoltà a seguire questo thread sul forum MSDN ufficiale di microsoft dove qualcuno ha il vostro stesso problema.

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=100225&SiteID=1

ciao!!
----------------------------------------------------------------------
http://www.flashinlabs.biz o .com o .net o .it fate voi :P

andyv1957 Profilo | Newbie

Ciao, risolto !!

Ho messo tre controlli RadioButton dentro l'area del Controllo personalizzato poi, con una struttura
Select Case sulla proprietà pubblica "Value", con la quale viene fatto il binding, verifico il valore che
mi arriva dal database e così checko il RadioButton corretto.
Il tutto con una manciata di righe di codice.

Grazie per l'aiuto.

Ciao

Lanello Profilo | Senior Member

quindi NON hai fatto il binding ;)


----------------------------------------------------------------------
http://www.flashinlabs.biz o .com o .net o .it fate voi :P

andyv1957 Profilo | Newbie

Si, faccio il binding sulla proprietà pubblica " Value" del mio controllo personalizzato, che ho chiamato
"UcGroupRadioButton", come vedi qui di sotto:

Me.UcGroupRadioButton1.DataBindings.Add("value", bs, "Climatizzazione", True)

nel codice del controllo, dentro il "Set - End Set" c'è una struttura Select Case che,
secondo il valore che gli arriva dal database, cecka il radiobutton corrispondente.
Ovviamente, gli altri due, vengono automaticamente de-ceckati.

Select Case Value
Case 1
RdbNo.Checked = True
Case 2
RdbTotale.Checked = True
Case 3
RdbAutista.Checked = True
End Select

Ciao

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5