Я ищу обходной путь для ошибки WPF, которая возникла на MSDN 3 года назад. В потоке человек, который поднял его, предложил обойти это, используя «Команду вместо EventHandler». Я не могу понять, как это сделать!
У меня есть приложение WPF, которое включает в себя мастера (следуя этому хорошему примеру). Каждая страница мастера имеет кнопку Закрыть:
- Обработчик щелчка при закрытии должен передать результат мастера в родительское приложение
- Кнопка должна быть помечена IsCancel, чтобы клавиша Esc вызывала ее
- Пользователю нужно задать вопрос «Вы уверены, что хотите потерять свои изменения?».
Если пользователь говорит «Нет», мастер не должен закрываться. Однако из-за вышеуказанной ошибки он закрывается независимо!
Мой взгляд просто имеет что-то вроде этого:
<Button Text="Close" Click=OnCloseClick IsCancel="True"/>
Мой обработчик кликов:
private void OnCloseClick(object sender, RoutedEventArgs e)
{
if (UserConfirmsTheyWantToLoseChanges())
{
OnReturn(new ReturnEventArgs<MyWizardResult>(MyWizardResult.Canceled));
}
else
{
e.Handled = true;
}
}
Может ли кто-нибудь дать мне простой пример того, как это может быть переработано с использованием шаблона Command?