[Windows ストアアプリ] ComboBoxで選択されている項目が変更されたことを知る

ComboBoxで選択項目が変更されたことを知るには SelectionChanged イベントを使用します。

たとえば、下記は選択項目が変更された時に処理をする例です。

選択項目が変更されると、新しく選択された項目のテキストを表示します。

C#の例

private async void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var selectedItem = (ComboBoxItem)comboBox1.SelectedItem;
    if (selectedItem == null) return;
    string contentString = (string)selectedItem.Content;

    var messageDialog = new MessageDialog(contentString);
    await messageDialog.ShowAsync();
}

[Windows ストアアプリ] ComboBoxのドロップダウン部分をコードから操作する

ComboBoxのドロップダウン部分はコードから開いたり閉じたりすることができます。

IsDropDownOpenプロパティにtrueを設定すると、ドロップダウン部分を開くことができます。

下記は、ボタンがクリックされたときにComboBoxのドロップダウン部分を開く例です。

C#の例

private void Button_Click(object sender, RoutedEventArgs e)
{
    comboBox1.IsDropDownOpen = true;
}

 

[Windows ストアアプリ] ComboBoxで選択されている項目のテキストを取得する 〜その2〜

[Windows ストアアプリ] ComboBoxで選択されている項目のテキストを取得するでは、SelectedItemプロパティをWindows.UI.Xaml.Controls.ContentControl型にキャストして、選択されているテキストを取得する方法について紹介しました

今回はもう1つの方法について説明します。
現在選択されている項目の取得については、前回と同じくSelectedItemプロパティを使用します。前回と異なるのはComboBoxItemにキャストすることです。

次に、キャストしたオブジェクトのContentプロパティを、String型にキャストすれば、現在選択されている項目のテキストを取得することができます。

下記に例を示します。

var selectedItem = (ComboBoxItem)comboBox1.SelectedItem;
string contentString = (string)selectedItem2.Content;

取得したselectedItemの値はnullの場合もあるので、下記のように対策を打つと良いでしょう。

var selectedItem = (ComboBoxItem)comboBox1.SelectedItem;
if (selectedItem == null) return;
string contentString = (string)selectedItem2.Content;