J'utilise une ToggleButton
dans une fenêtre WPF:
<ToggleButton Height="37"
HorizontalAlignment="Left"
Margin="485.738,254.419,0,0"
VerticalAlignment="Top"
Width="109"
IsEnabled="True"
Checked="toggleAPDTimeoutErr_Checked"
Unchecked="toggleAPDTimeoutErr_Unchecked">Timeout</ToggleButton>
Je surveille deux événements, mais cela se fait dans deux codes différents, derrière des gestionnaires. Comment cela peut-il être fait dans un seul?
J'aurai beaucoup de ToggleButton
s, et le code peut devenir volumineux.
Vous pouvez attacher un événement de simple clic de votre ToggleButton
et dans son gestionnaire vous pouvez vérifier la propriété ToggleButton
IsChecked
en tapant le type de l'objet émetteur dans votre gestionnaire de la manière suivante:
private void ToggleButton_Click(object sender, RoutedEventArgs e)
{
if((sender as ToggleButton).IsChecked)
{
// Code for Checked state
}
else
{
// Code for Un-Checked state
}
}
Xaml:
<ToggleButton Height="37" HorizontalAlignment="Left" Margin="485.738,254.419,0,0" VerticalAlignment="Top" Width="109" IsEnabled="True" Click="ToggleButton_Click">Timeout</ToggleButton>
Vous ne devez pas utiliser l'événement Click
comme le suggèrent certaines réponses, car il ne fonctionnera pas si la propriété IsChecked
est modifiée par le code ou par tout autre événement que la souris (clavier, animation, etc.). C'est simplement un bug.
Au lieu de cela, vous pouvez utiliser le même gestionnaire pour Checked
et Unchecked
et effectuer les actions en fonction de la propriété IsChecked
.
<ToggleButton
Checked="toggleButton_IsCheckedChanged"
Unchecked="toggleButton_IsCheckedChanged" />
Essaye ça
private void tBtn_super_Click(object sender, RoutedEventArgs e)
{
if (tBtn_super.IsChecked == true)
{
MessageBox.Show("True");
}
else
{
MessageBox.Show("False");
}
}