Скажем, у меня есть кнопка с именем btn1
, которая показывает Open
, когда состояние не отмечено, и Close
, когда проверяется состояние. Я определяю две функции, чтобы просто обрабатывать его отмеченное / не отмеченное событие:
private void Btn_Checked(object sender, RoutedEventArgs e)
{
// Do some open operation.
}
и
private void Btn_Unchecked(object sender, RoutedEventArgs e)
{
// Do some close operation.
}
Теперь я хочу показать диалоговое окно подтверждения, когда пользователь нажимает кнопку переключения. Поэтому я добавляю MessageBox до do some open/close operation
. Код стал
private void Btn_Checked(object sender, RoutedEventArgs e)
{
MessageBoxResult res = MessageBox.Show("Do you really want to open it?", "app name", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
if(res == MessageBoxResult.OK)
{
// Do some open operation.
}
else
{
btn1.IsChecked = false;
}
}
Не проверенный обработчик похож на проверенный обработчик.
Но после запуска этого кода, если я решу отменить диалог, тогда checked
/ * В диалоговом окне 1017 * постоянно появляется альтернативное всплывающее окно.
Итак, как мне элегантно справиться с этим делом?