Кнопки WPF тумблер проверено/событие Uchecked с одним обработчиком
Я использую ToggleButton
в окне 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>
у меня есть два события, которые я отслеживаю, но это делается в два разных кода обработчиков. Как это можно сделать только за один раз?
у меня будет много ToggleButton
s, и код может стать большим.
3 ответов
вы можете прикрепить одно событие щелчка вашего ToggleButton
и в его обработчике можно проверить ToggleButton
IsChecked
свойство по типу литья объекта отправителя в вашем обработчике, как это -
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>
вы не должны использовать Click
событие, как предлагают некоторые ответы, потому что оно не будет работать, когда свойство IsChecked
изменяется кодом или любым другим событием, кроме мыши (клавиатура, анимация..). Это просто ошибка.
Checked
и Unchecked
и выполнить действие в зависимости от IsChecked
собственность.
<ToggleButton
Checked="toggleButton_IsCheckedChanged"
Unchecked="toggleButton_IsCheckedChanged" />
попробуй такое
private void tBtn_super_Click(object sender, RoutedEventArgs e)
{
if (tBtn_super.IsChecked == true)
{
MessageBox.Show("True");
}
else
{
MessageBox.Show("False");
}
}