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:
Posta un commento