back

ComboBoxとListView (2/4)

■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にキャストして利用すればいいでしょう。



(by. SYODA-Tuyano.)

※リストが表示されない場合

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;
}




   

記事のリストに戻る



PC Site G+ mail