Как предотвратить событие изменения выбора элемента вкладки? - PullRequest
0 голосов
/ 27 декабря 2011

Я работаю над wpf. Моё требование - изменить выбор вкладки в соответствии с подтверждением пользователя, это означает, что каждый раз, когда пользователь меняет вкладку, открывается окно сообщения и подтверждается пользователем, хочет ли он изменить вкладку.

Но проблема со мной в том, что когда я не нажимаю в первый раз, он работает нормально. Но после этого во второй раз он запрашивает подтверждение пользователя два раза

Может кто-нибудь помочь мне решить эту проблему?

private void tabcontrol_SelectionChanged(object sender,SelectionChangedEventArgs e)
{
    try
    {
    if (handleSelection  && e.OriginalSource == tbUserProfileMainControl)
        {
         //Ask user for change

         if (isUserAllowedToChanged)
             {
             int currentIndex = (tabcontrol.SelectedIndex);

             GeneralDeclaration.currentSelectedTabIndex = currentIndex;

             LoadUserControl(GeneralDeclaration.currentSelectedTabIndex);
             }
         else
             {
             //e.Handled = true;
             handleSelection = false;
             tbUserProfileMainControl.SelectedIndex = Math.Abs(tbUserProfileMainControl.SelectedIndex - 1);
              }
         }
   handleSelection = true;
   }
   catch (Exception ex)
       {
        //
       }
}

1 Ответ

0 голосов
/ 27 декабря 2011

Похоже, вы добавляете обработчики во время самого события click.Это приведет к тому, что последующий щелчок выполнит действие еще раз (3-й щелчок 3 раза, 4-й щелчок 4 раза и т. Д.).

Проверьте, как вы связываете событие с обработчиком, и проверьте, где вы определяете сам обработчик.,Вы делаете что-то дважды, что должно быть сделано только один раз.

Это моя оценка, основанная на ваших выводах, без кода, я просто делаю дикий удар в темноте.

...