domenica 20 giugno 2010

Silverlight utilizzare un controllo checkbox all'interno di un controllo button, in VB.Net e C#

Il frammento di codice qui riportato, illustra una tecnica di come utilizzare i controlli composti, ossia, all'interno di un pulsante button rilevare il valore della proprietà ischecked del controllo checkbox.


Riporto il codice XAML valido per i linguaggi di programmazione VB.Net e C#


<Grid x:Name="LayoutRoot" Background="White">


<Button Height="23" HorizontalAlignment="Left" Margin="83,157,0,0" Click="btnComposto_Click" Name="btnComposto" VerticalAlignment="Top" Width="150" >


<Button.Content>


<CheckBox Content="Frutta"></CheckBox>


</Button.Content>


</Button>


</Grid>


Come si vede dal codice XAML, sono state impostate alcune proprietà del controllo button, si fa presente che tra le proprietà del controllo button, non è stato impostata la proprietà Content, proprio perchè viene utilizzata successivamente, nel caso che si imposti un valore di tale proprietà non è possibile utilizzare al suo interno un controllo.


Successivamente viene impostato il nodo <button.content> che al suo interno verrà impostato un controllo checkbox.


Terminata la parte design, vediamo come rilevare tramite codice VB.Net e C# il valore della proprietà IsChecked del controllo checkbox. Nel gestore dell'evento click del pulsante, rileviamo se è stata spuntata o non la parola "Frutta",


Qui di seguito si riporta il codice dei due linguaggi (VB.Net e C#)


VB.Net


Private Sub btnComposto_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)


'effettuo un casting e verifico la proprietà ischecked del controllo checkbox situato all'interno del pulsante


If CType(btnComposto.Content, CheckBox).IsChecked = True Then


MessageBox.Show("Hai scelto la frutta")


Else


MessageBox.Show("Non hai scelto la frutta")


End If


End Sub



C#


private void btnComposto_Click(object sender, RoutedEventArgs e)


{


//effettuo un casting e verifico la proprietà ischecked del controllo checkbox situato all'interno del pulsante


if (((CheckBox)btnComposto.Content).IsChecked == true)


MessageBox.Show("Hai scelto la frutta");


else


MessageBox.Show("Non hai scelto la frutta");


}

Nessun commento: