2017-06-02 53 views
0

我認爲ComboBox.SelectedItem.ToString()會工作,但它總是返回這個字符串:Windows.UI.Xaml.Controls.ComboBoxItem,而選定的項目的內容是不同的。如何獲取ComboBox.SelectedItem的內容?

+1

您應該檢查組合框的SelectedItem.Value或SelectedValue。 –

+2

對於ComboBox中的簡單文本,使用'(comboBox.SelectedItem作爲ComboBoxItem).Content.ToString()' – AVK

回答

0

這是一個簡單的問題。 您要找的是ComboboxItem所選項目的dataContext。爲了得到這個,

  1. 爲Combobox創建一個SelectionChanged事件。
  2. 既然你有這個事件,它將提供兩個方法參數(object senderEventArgs e)。
  3. sender投射到組合框(var container = sender as ComboBox)。
  4. 現在,拉出所選項目作爲comboboxItemvar selected = container.SelectedItem as ComboBoxItem)。
  5. 現在從selectedItem中提取DataContext並將其轉換爲您提供的類型(一個字符串或您提供的某個類的類型)。

if (selected != null) 
{ 
    var dataYouNeed = selected.DataContext as TypeYouDefined; //(string or a class) 
    if (dataYouNeed != null) 
    { 
     //Do your stuff here 
    } 
} 

如果你有到ComboBox的直接訪問,那麼你並不需要的事件。 只需遵循以下代碼。

var selected = MyComboBox.SelectedItem as ComboBoxItem; 
     if(selected!=null) 
     { 
      var dataYouNeed = selected.DataContext as TypeOfDataYouDifined; //string or some Class 
      if(dataYouNeed!=null) 
      { 
       //do your stuff here... 
      } 
     }