I controlli Silverlight 2.0 Radiobutton

Articolo introduttivo al controllo Radiobutton di Silverlight.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Introduzione

Vedremo l’utilizzo del controllo di opzione ossia del RadioButton di Silverlight 2.0. Il controllo radiobutton, permette di avere una lista di valori selezionabile tramite un cerchio posto in prossimità di tale voce, permettendo la selezione univoca.

I controlli radiobutton sono utilizzati per selezionare in una lista di valori una determinata voce, escludendo la possibilità di selezionarli altri.

La selezione è univoca, ossia non è possibile avere due o più voce selezionate, almeno ché non è il programmatore a permettere ciò.

 Creazione del progetto

Ma vediamo in dettaglio questo controllo, dopo aver creato un progetto di tipo silverlight, dalla barra degli strumenti aggiungiamo il controllo radiobutton. Aggiungiamo anche un controllo stackpanel, in questo modo potremmo avere più controlli radiobutton, allineati uno sotto l’altro. Aggiungiamo anche un pulsante.

Di seguito si riporta il codice XAML per tali esempio

<StackPanel>
            <RadioButton Content="Rosso" x:Name="Rosso" Checked="RadionButto_Checked" IsChecked="true" ></RadioButton>
            <RadioButton Content="Verde" x:Name="Verde" Checked="RadionButto_Checked" ></RadioButton>
            <RadioButton Content="Giallo"  x:Name="Giallo" Checked="RadionButto_Checked" ></RadioButton>
            <Button Content="Valore" x:Name="BtnValore" Click="BtnValore_Click" ></Button>
</StackPanel>

 

Come si vede dal frammento di codice, la proprietà content, visualizza il testo del controllo, mentre la proprietà IsChecked, indica se tale controllo è selezionato o no. In questo modo, eseguendo il progetto, sarà possibile fare la selezione di un solo valore della lista, mentre impostando la proprietà GroupName, possiamo creare più liste, in cui si possono selezionare valori da una parte e dall’altra. Le altre proprietà sono x:Name in cui viene impostato il nome univoco del controllo, mentre checked l’evento che si scatenal al momento che viene fatto click su tale controllo.

Stesura di codice.

Vediamo qui di seguito il codice per rilevare il valore del nome del controllo selezionato

Codice VB.Net

'Variabile
Dim nomeControllo As String 

'Evento Checked dei controlli radionbutton
Private Sub RadionButto_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Dim rdbSceltaControllo As RadioButton = CType(sender, RadioButton)
        nomeControllo = rdbSceltaControllo.Name
    End Sub

'Evento click del pulsante

Private Sub BtnValore_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        MessageBox.Show(nomeControllo)
    End Sub
 


Codice C#

//Variabile
string nomeControllo = "";

//Evento ckecked dei controlli radiobutton
private void RadionButto_Checked(object sender, RoutedEventArgs e)
        {
            RadioButton rdbSceltaControllo = sender as RadioButton;
            if (rdbSceltaControllo == null) return;
            nomeControllo = rdbSceltaControllo.Name;
        }
 //Evento click del pulsante
private void BtnValore_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show(nomeControllo);
        }


Come si vede dal codice per l’evento checked del controllo radiobutton otteniamo un oggetto di tipo radiobutton, e poi impostiamo la variabile, con il nome del controllo.

Le altre righe si commentano da sole, già viste in precedenza.

La proprietà GroupName.

Con la proprietà GroupName, possiamo impostare gruppi di liste, in modo di avere più liste e quindi la possibilità di selezionare n valori.

Qui di seguito si riporta il codice XAML.


<StackPanel>
            <RadioButton Content="Rosso" x:Name="Rosso" Checked="RadionButto_Checked" IsChecked="true" ></RadioButton>
            <RadioButton Content="Verde" x:Name="Verde" Checked="RadionButto_Checked" ></RadioButton>
            <RadioButton Content="Giallo"  x:Name="Giallo" Checked="RadionButto_Checked" ></RadioButton>
            <Button Content="Valore" x:Name="BtnValore" Click="BtnValore_Click" ></Button>
            <RadioButton Content="Nero" GroupName="Colori" x:Name="Nero" Checked="RadionButton_Checked" IsChecked="true" ></RadioButton>
            <RadioButton Content="Bianco" GroupName="Colori" x:Name="Bianco" Checked="RadionButton_Checked" ></RadioButton>
            <RadioButton Content="Blu"  GroupName="Colori"  x:Name="Blu" Checked="RadionButton_Checked" ></RadioButton>
        </StackPanel>

Come si vede dopo il controllo button, sono stati aggiunti altri controlli di tipo radiobutton, ma questa volta è stata impostata la proprietà GroupName in modo che sia possibile selezionare anche i valori di questa lista, che fanno riferimento ad un determinato gruppo. Impostando la proprietà GroupName, possiamo creare n liste di valori ed avere la possibilità di selezionare vari valori. Nel nostro esempio xaml, si hanno due liste.

Stesura del codice.

Come per l’evento checked visto precedentemente, il codice non cambia.

Codice VB.Net

Private Sub RadionButton_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Dim rdbSceltaControllo As RadioButton = CType(sender, RadioButton)
        nomeControllo = rdbSceltaControllo.Name
    End Sub

Codice C#


private void RadionButton_Checked(object sender, RoutedEventArgs e)
        {
            RadioButton rdbSceltaControllo = sender as RadioButton;
            if (rdbSceltaControllo == null) return;
            nomeControllo = rdbSceltaControllo.Name;
        }


 

Conclusioni


Tramite la parola Download, potete scaricare il file utilizzato in questo articolo. Il controllo radiobutton può tornare utile nel caso si devono fare delle liste in cui per ogni lista è possibile selezionare un solo valore.

Un esempio tipico di questo controllo può essere la lista del pranzo di un hotel ossia una lista di primi piatti, un'altra di secondi piatti ed una relativo al contorno, in questo modo l’utente dovrà selezionare un tipo di menu in base alla scelta dei primi, secondi e contorni.

Download