SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――リストボックス機能

(4) ListBoxコントロール


ダウンロード WPF_VB.zip (322.6 KB)
ダウンロード WPF_CS.zip (212.4 KB)
ダウンロード Silverlight_VB.zip (2.4 MB)
ダウンロード Silverlight_CS.zip (2.3 MB)

5. 選択モードを設定する

 ListBoxコントロールに表示されている項目は選択モードを設定できます。選択モードはSelectionModeプロパティSelectionMode列挙体を指定して設定します。

SelectionMode列挙体
メンバ名 説明
Single 単一の項目を選択できるようにします。
Multiple 複数の項目を選択できるようにします。
Extended ShiftキーやCtrlキーを使用して、複数の項目を選択できるようにします。

 下記は、Single,Multiple,Extendedと書かれたRadioButtonコントロールにあわせて、選択モードを変更する例です。

選択モードを設定する例
選択モードを設定する例
XAMLの例
<ListBox SelectionMode="Multiple">
    <ListBoxItem>リンゴ</ListBoxItem>
    <ListBoxItem>ミカン</ListBoxItem>
    <ListBoxItem>バナナ</ListBoxItem>
    <ListBoxItem>パイナップル</ListBoxItem>
    <ListBoxItem>スイカ</ListBoxItem>
    <ListBoxItem>グレープフルーツ</ListBoxItem>
</ListBox>
VBの例
Private Sub RadioButton_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles RadioButton3.Checked, RadioButton2.Checked, RadioButton1.Checked
    '選択されたRadioButtonによってSelectionModeを切り替える
    If RadioButton1.IsChecked Then
        ListBox1.SelectionMode = SelectionMode.Single
    ElseIf RadioButton2.IsChecked Then
        ListBox1.SelectionMode = SelectionMode.Multiple
    Else
        ListBox1.SelectionMode = SelectionMode.Extended
    End If
End Sub
C#の例
private void radioButton_Checked(object sender, RoutedEventArgs e)
{
    // 選択されたRadioButtonによってSelectionModeを切り替える
    if ( (bool)radioButton1.IsChecked )
        listBox1.SelectionMode = SelectionMode.Single;
    else if ( (bool)radioButton2.IsChecked )
        listBox1.SelectionMode = SelectionMode.Multiple;
    else
        listBox1.SelectionMode = SelectionMode.Extended;
}
ポイント

 選択モードを設定するには、SelectionModeプロパティを使用する。

6. 項目を選択する

 ListBoxコントロール上で単一の項目を選択状態するにはItemsプロパティのIsSelectedプロパティをTrueにします。また、全項目を選択するにはSelectAllメソッドを使用します。

 下記は[3番目の項目を選択]ボタンを押すと、上から3番目に表示されている項目を選択状態にし、[全選択]ボタンを押すと表示されているすべての項目を選択状態にする例です。

項目を選択する例
項目を選択する例
VBの例
'[3番目の項目を選択]ボタンクリック時の処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
    '3番目の項目を選択状態にする(インデックスが2の項目)
    'IsSelected プロパティはItemsプロパティから直接使用することができません。
    'このため ListBoxItem型にキャストしてから使用しています
    DirectCast(ListBox1.Items(2), ListBoxItem).IsSelected = True
End Sub

'[全選択]ボタンクリック時の処理
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
    '全項目を選択する
    ListBox1.SelectAll()
End Sub
C#の例
// [3番目の項目を選択]ボタンクリック時の処理
private void button1_Click(object sender, RoutedEventArgs e)
{
    // 3番目の項目を選択状態にする(インデックスが2の項目)
    // IsSelected プロパティはItemsプロパティから直接使用することができません。
    // このため ListBoxItem型にキャストしてから使用しています
    ((ListBoxItem)listBox1.Items[2]).IsSelected = true;
}

// [全選択]ボタンクリック時の処理 
private void button2_Click(object sender, RoutedEventArgs e)
{
    // 全項目を選択する
    listBox1.SelectAll();
}
ポイント

 単一の項目を選択するには、ItemsプロパティのIsSelectedプロパティを、全項目を選択するにはSelectAllメソッドを使用します。

次のページ
7. 選択されている項目を取得する

この記事は参考になりましたか?

Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5557 2010/11/25 22:09

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー