libro
www.tuyano.com
C#ではじめるWindows 8アプリ開発入門

ComboBoxとListView (2/4)

作成:2014-02-15 11:41
更新:2014-02-15 11:41

■SelectionChangedイベントとComboBoxItemの扱い

では、ComboBoxをプログラム内から利用する場合について考えてみましょう。まず、ComboBoxを操作した時の処理についてですが、これには「SelectionChanged」というイベントを使用します。

このイベントは、文字通り、ComboBoxで選択されている項目を変更した時に発生するイベントです。このイベントを利用することで、ComboBoxを選択した時の処理が実行できます。

実際にやってみましょう。デザイン画面で配置したComboBox(ここではcombo1という名前で設定してあります)を選択し、プロパティから「selectionChanged」イベントを探して、そこに「Combo1_Changed」と設定をしてください。そしてMainPage.Xaml.csに生成されたメソッドを下のリストのように書き換えましょう。これは、選択した項目を画面のTextBlock(textblock1という名前にしてあります)に表示するサンプルです。

ここでは、SelectionChangedイベントに割り当てられるメソッドが以下のように定義されていますね。
private void メソッド名 (object sender, SelectionChangedEventArgs e)
第1引数にはイベントの発生したオブジェクトが、第2引数にはSelectionChangedイベントに関する情報がまとめられたオブジェクトが渡されます。

ここでは、まずComboBoxから選択されたComboBoxItemを以下のようにして取り出しています。
ComboBoxItem item = combo1.SelectedItem as ComboBoxItem;
SelectedItemというプロパティが、選択されている項目のオブジェクトを示すプロパティです。これはObjectとして取り出されるので、ComboBoxItemにキャストしておきます。そして、取り出されたComboBoxItemから、Contentプロパティの値を取り出して表示すればいい、というわけです。

ComboBoxItemではなくstringを項目に設定してある場合は、SelectedItemをそのままstringにキャストして利用すればいいでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

private void Combo1_Changed(object sender, SelectionChangedEventArgs e)
{
    ComboBoxItem item = combo1.SelectedItem as ComboBoxItem;
    string msg = "you selected: \"" + item.Content + "\".";
    textblock1.Text = msg;
}

※関連コンテンツ

「C#ではじめるWindows 8アプリ開発入門」に戻る