2017-03-29 26 views
1

我在C#中有一個UWP應用程序。我有一個單選按鈕,用戶可以選中或取消選中。它被默認選中,用戶可以在他們希望的時候取消選中它。但是,如果他們取消選中,則的bool值永遠不會返回false如果需要,用戶不可能再重新檢查單選按鈕。我的代碼如下。RadioButton.IsChecked不會錯誤

private void usingmltBtn_Click(object sender, RoutedEventArgs e) 
    { 


     if (RadioButton.IsChecked == true) 
     { 
      RadioButton.IsChecked = false; 
      i2cerrRec.Visibility = Visibility.Collapsed; 
      i2cerrTxt.Visibility = Visibility.Collapsed; 
      mltI2Cnck = 0; 

     } 
     else if (RadioButton.IsChecked == false) 
     { 
      RadioButton.IsChecked = true; 
      mlttempLbl.Text = "N/C"; 
     } 

    } 

感謝您的幫助。

+3

也許你應該使用複選框呢?單選按鈕用於從一組選項中選擇一個選項。複選框用於是/否。取消選中單選按鈕通常沒有意義;相反,你會選擇一個不同的選項來代替(包括一個可以代表'不選'的選項) – Rob

+1

單選按鈕允許用戶從一組中選擇一個選項。如果您認爲用戶需要並排查看所有可用選項,則應該使用單選按鈕作爲互斥的可選集。 如果您想要一個YES/NO選項,請使用複選框。 –

+0

您不能通過單擊取消選擇單選按鈕。你必須添加另一個單選按鈕。然後你可以選擇其中任何一個來選擇/取消選擇。改爲使用複選框。 –

回答

3

正如其他人所描述的,RadioButtons被設計爲在一個組中工作。這意味着您將有多個RadioButtons供用戶選擇,但他們只能選中一個。

當一個RadioButton被選中時,它不能被用戶再次點擊,而不使用自定義行爲來檢查用戶是否點擊了RadioButton,但這不會被推薦。

我建議你使用CheckBox來實現這個功能。如果您願意,甚至可以將CheckBox控件重新模板化爲RadioButton。

0

使用此

private void usingmltBtn_Click(object sender, RoutedEventArgs e) 
     { 

      if (RadioButton.Checked == true) 
      { 
       RadioButton.Checked = false; 
       i2cerrRec.Visibility = Visibility.Collapsed; 
       i2cerrTxt.Visibility = Visibility.Collapsed; 
       mltI2Cnck = 0; 

      } 
      else if (RadioButton.Checked == false) 
      { 
       RadioButton.Checked = true; 
       mlttempLbl.Text = "N/C"; 
      } 
      } 
1

經過下面的網址

https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/radio-button 

你錯在XAML代碼可能!

0

我可以看到在這裏2個問題:

1 - 我可能是錯的,但你張貼的方法是由他的名字是usingltBtn(不是描述的方式)控制觸發,如果是這樣的話,你可能會使用另一個控件的觸發器來運行此代碼。

2-無論是單選按鈕的名稱是usingltBtn或者您沒有將代碼引用到您的控件中RadioButton是類的名稱而非特定的控件。

如何解決這個問題?如果您的控件的名稱是usingltBtn使用usingltBtn.IsChecked而不是RadioButton.IsChecked如果沒有找到您的控件的名稱並使用它