2017-06-02 4 views
0

私はComboBox.SelectedItem.ToString()がうまくいくと思っていましたが、常にこの文字列を返しています:Windows.UI.Xaml.Controls.ComboBoxItem、選択した項目の内容は異なります。ComboBox.SelectedItemのコンテンツを取得するには?

+1

コンボボックスのSelectedItem.ValueまたはSelectedValueを確認する必要があります。 –

+2

ComboBoxからのシンプルテキストの場合、 '(comboBox.SelectedItem as ComboBoxItem).Content.ToString()'を使用します。 – AVK

答えて

0

これは単純なものです。 ComboboxItemのSelectedアイテムのdataContextが探しています。これを取得するには、

  1. コンボボックスのSelectionChangedイベントを作成します。
  2. これで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 
    } 
} 

あなたが直接コンボボックスへのアクセス権を持っている場合は、イベントを必要としません。 以下のコードに従ってください。

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... 
      } 
     } 
関連する問題