2012-12-08 61 views
0

你好,我有兩個單選按鈕。一男一女。問題是,當他們中的一個被選中(例如男性),並且用戶試圖改變到另一個(女性)時,我向用戶顯示一條警告消息。如果他按確定從女性變爲男性,一切都好。但是當他按下取消按鈕時,男女之間也會發生變化。我如何防止這種情況?有什麼辦法來禁用radiobutton_checked監聽器,並啓用每當我想要?
用於男性和女性聽衆的代碼是下一個:
單選按鈕改變警告信息

private void NewTrdButtonMale_Checked(object sender, RoutedEventArgs e) 
    { 
//if there are participants for deletion i display a warning message that says that if you change from female to male the deletion will be done 
     if (newAreParticipantsForDeletion()) 
     { 
      switch (warningMessage()) 
      { 
       case "OK": 
        //nothing useful for you here 
        break; 
       case "Cancel": 
        break; 
      } 
     } 
     else 
     { 
      //nothing interesting here 
     } 

    } 

    private void NewTrdButtonFemale_Checked(object sender, RoutedEventArgs e) 
    { 
     //it is the same code as the above but it is for female 
    } 

上述方法是用於單選按鈕的監聽器。那我想做的是,如果用戶按取消不做任何更改。但這是困難的部分,因爲我已經在男性託管的聽衆的內部,所以變更已經完成。

+0

請問您可以發佈您的代碼嗎? –

+0

WPF,Winforms還是Win8? – OmegaMan

+0

對不起,我發佈了它,但我不確定它是非常有用的。這是wpf。 – userX

回答

0

我找到了解決方案。

我必須把下一個代碼放到取消選擇。

NewTrdButtonFemale.Checked -= new RoutedEventHandler(NewTrdButtonFemale_Checked); 
        NewTrdButtonFemale.IsChecked = true; 
        NewTrdButtonFemale.Checked += new RoutedEventHandler(NewTrdButtonFemale_Checked); 

上述代碼禁用偵聽器。之後,我恢復女性選擇,然後我再次啓用聽衆。