Я защищаю свои вызовы от телефонных звонков с помощью була, чтобы остановить двойное нажатие. Мой код выглядит примерно так:
public bool InNavigation { get; set; }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
InNavigation = false;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (!InNavigation)
{
PhoneCallTask task = new PhoneCallTask()
{
DisplayName = "TEst",
PhoneNumber = "1234567890"
};
InNavigation = true;
task.Show();
}
}
Сегодня я заметил, что если пользователь нажимает кнопку «Не звонить» во всплывающем окне MessageBox. Код выше полагается на страницу, которая будет NavigatedFrom и затем в NavigateTo флаг InNavigation сбрасывается Это означает, что если пользователь:
- Нажмите кнопку "Позвонить" в моем приложении.
- «Не звонить» в блоке задач
- Затем снова пытается нажать «Позвонить», ничего не произойдет.
Есть ли лучший способ защиты от нескольких кликов?