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

ComboBoxとListView (3/4)

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

■ListViewについて

ComboBoxはポップアップしてメニューが現れましたが、常時リストを表示した状態にしておく場合に用いられるのが「ListView」というコントロールです。

このListViewは、ComboBoxと使い方が非常に似ています。やはり表示する項目は「Items」プロパティで設定することができます。このプロパティの「...」ボタンを押すと項目を作成するためのダイアログが現れ、ここで項目を追加していくことができます。

ComboBoxと異なるのは、追加する項目は「ListBoxItem」という種類を選ぶ、という点でしょう。といっても、違いはその程度で、Contentで表示するテキストを設定するなど基本はComboBoxItemと違いはありません。

また、リストから項目を選択した時の処理もComboBoxとほぼ同じです。SelectionChangedイベントを使い、ListViewSelectedItemからListBoxItemを取り出して利用すればいいのです。

下のリスト欄に、簡単な利用例を挙げておきます。ここではlist1というListViewのselectedChangeイベントに「List1_Changed」というメソッドを設定した形でまとめてあります。以下のようにして選択された項目を取り出しているのがわかりますね。
ListBoxItem item = list1.SelectedItem as ListBoxItem;
SelectedItemの値は、ここではListBoxItemにキャストします。後は、そこからContentを取り出して処理するだけです。ComboBoxがわかれば、ListViewもほとんど同じ感覚で扱えるでしょう。

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

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

●プログラム・リスト●

※MainPage.XamlのListViewのタグ

<ListView x:Name="list1" HorizontalAlignment="Left" Height="252" Margin="113,182,0,0" 
        VerticalAlignment="Top" Width="307" FontSize="24" Background="#FF660000" 
        SelectionChanged="List1_Changed">
    <ListBoxItem Content="Windows Phone" FontSize="24"/>
    <ListBoxItem Content="Android" FontSize="24"/>
    <ListBoxItem Content="iPhone" FontSize="24"/>
    <ListBoxItem Content="Black berry" FontSize="24"/>
</ListView>


※MainPage.Xaml.csに作成されるメソッド

vate void List1_Changed(object sender, SelectionChangedEventArgs e)
{
    ListBoxItem item = list1.SelectedItem as ListBoxItem;
    string msg = "you seleted: " + "\"" + item.Content + "\"";
    textblock1.Text = msg;
}

※関連コンテンツ

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