wpf events togglebutton

WPF Toggle Button Checked/Uchecked evento con un controlador



events togglebutton (3)

Estoy usando un ToggleButton en una ventana de 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>

Tengo dos eventos que estoy monitoreando, pero esto se hace en dos códigos diferentes detrás de los controladores. ¿Cómo se puede hacer esto en una sola?

Tendré muchos ToggleButton s, y el código puede ser grande.


No debe usar el evento Click como sugieren algunas respuestas, ya que no funcionará cuando la propiedad IsChecked se IsChecked por código o cualquier otro evento que no sea el mouse (teclado, animación ...). Esto es simplemente un error.

En su lugar, puede usar el mismo controlador tanto para IsChecked como IsChecked y hacer una acción según la propiedad IsChecked .

<ToggleButton Checked="toggleButton_IsCheckedChanged" Unchecked="toggleButton_IsCheckedChanged" />


Prueba esto

private void tBtn_super_Click(object sender, RoutedEventArgs e) { if (tBtn_super.IsChecked == true) { MessageBox.Show("True"); } else { MessageBox.Show("False"); } }


Puede adjuntar un evento de un solo clic de su ToggleButton y en su controlador puede verificar la propiedad IsChecked ToggleButton IsChecked el objeto remitente en su controlador de esta manera:

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>