2016-07-27 53 views
0

我正在製作一個由comboBoxes組成的應用程序。如果用戶在comboBox中選擇了「司機」,則單擊我的btnAddDriver後總價格將上漲10%。然而,當我選擇「司機」時,當我單擊添加驅動程序時總價格不會增加10%,實際上,在使用制動點時,似乎並未意識到我已選擇「司機」並跳過if語句中的計算。ComboBox所選項目字符串比較似乎沒有按預期工作

我的代碼休耕

int policy = 500; 
double Chauffeur = 0.10; 

     private void cmbOccupation_Loaded(object sender, RoutedEventArgs e) 
     { 
      // ... A List. 
      List<string> occupation = new List<string>(); 
      occupation.Add("Chauffeur "); 
      occupation.Add("Accountant"); 


      // ... Get the ComboBox reference. 
      var comboBox = sender as ComboBox; 

      // ... Assign the ItemsSource to the List. 
      comboBox.ItemsSource = occupation; 

      // ... Make the first item selected. 
      comboBox.SelectedIndex = 0; 
     } 

    private void btnAddDriver_Click(object sender, RoutedEventArgs e) 
     { 


      txtPolicy.Text = policy.ToString(); 

      if (cmbOccupation.SelectedItem.ToString() == "Chauffeur") 
      { 
       txtPolicy.Text = (policy * Chauffeur).ToString(); 
      } 

     } 
+1

不要比較字符串,用枚舉這樣的事情。或者您保存在複雜類型的可訪問引用中的類實例。 –

回答

1

變化occupation.Add("Chauffeur ");

occupation.Add("Chauffeur");

+0

感謝這工作:) –

2

"Chauffeur""Chauffeur "在C#中兩個不同的字符串。

這將是150美元,請付出女孩在您的出路書桌。

+1

或者在比較之前使用'Trim()'。 – Rahul

+0

@Rahul和'StringComparison.CurrentCultureIgnoreCase'好的措施。但我真的只是使用像H.說。 –

相關問題