2011-12-27 25 views
0

私はwpfに取り組んでいます。私の要件は、ユーザーの確認に従ってタブの選択を変更することです。つまり、ユーザーがタブを変更するたびにメッセージボックスが開き、タブを変更するかどうかをユーザーが確認します。私はそれがユーザの確認のため2回に尋ねる二時間に、その後、それは罰金.butの作品何の最初の時間を押していないとき、私と一緒にタブ項目選択変更イベントを防止する方法は?

しかし、問題がある

これを解決するために

誰も私を助けることができますか?

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) 
     { 
     // 
     } 
} 
+2

私が最初に打つのは、これは厄介なUXデザインであるということです。もう1つは、コードを投稿してください。あなたが何をしているのかわからなければ、あなたを助けることはできません。おそらくコードを投稿した場合にいくつかの素晴らしい答えを得ることは簡単かもしれません。 – Lazarus

+0

私のコードをアップロードしました – Abhishek

+0

何とか途中でイベントハンドラを追加している、またはイベントハンドラ内からタブを変更しています... – Yahia

答えて

0

クリックイベント中にハンドラを追加しているようです。これにより、その後のクリックでもう一度アクションが実行されます(3回目は3回、4回目は4回など)。

イベントをハンドラにバインドする方法を確認し、ハンドラ自体を定義する場所を確認します。あなたは何度も何度もやるべきことを何回もやっています。

これは私の見積もりに基づいており、コードなしで、私は暗闇の中で野生の刺し傷を取っているだけです。

+0

いいえ私は再び設計から関連付けられたことを確認しました。 – Abhishek

+0

@Abshishek Sheth:イベントハンドラに 'brekpoint'を置くと、どのような呼び出しスタックが表示されますか? – Tigran

+0

ブレークポイントはどこに置くべきですか? – Abhishek

関連する問題