Я хочу выполнить следующее. У меня есть ToggleSwitch, обработчик событий которого Toggled выполняет какое-то действие. Если это действие не удается, я хочу сбросить состояние ToggleSwitch до того, что было.
Я достигаю этого, делая: toggleSwitch.IsOn = !toggleSwitch.IsOn;
Моя проблема в том, что это снова вызывает событие Toggled, что приводит к бесконечному циклу, если действие всегда терпит неудачу.
Вот мой полный пример кода
private async void ToggleSwitch_Toggled(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
ToggleSwitch toggleSwitch = sender as ToggleSwitch;
success = dummyService.performAction(toggleSwitch.IsOn);
if (!success )
{
//raise dialog to inform user here
toggleSwitch.IsOn = !toggleSwitch.IsOn;
}
}
Я знаю, что такое поведение уже реализовано в разных приложениях, поэтому добиться этого несложно.