[C# WPF] ListBoxからLIstBoxItemを取得する

2019年4月18日

ListBoxからListBoxItemを取る方法を聞かれて、サンプルを作ったのでそのまま公開します。
調べたときの検索ワードが悪かったのか、すぐに見つからなかったので。。。

スポンサーリンク

まずListBox

以下のようなボタンが3つ並んでいるListBoxがあるとします。
先頭のボタンだけ選択状態にしてあります。

<Window x:Class="Sample_ListBox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Sample_ListBox"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    
    <Grid>
        <ListBox x:Name="xListBox">
            <ListBoxItem IsSelected="True">
                <Button x:Name="xButton1" Width="200" Height="40">あした</Button>
            </ListBoxItem>
            <ListBoxItem>
                <Button x:Name="xButton2" Width="200" Height="40">あさって</Button>
            </ListBoxItem>
            <ListBoxItem>
                <Button x:Name="xButton3" Width="200" Height="40">しあさって</Button>
            </ListBoxItem>
        </ListBox>
    </Grid>
    
</Window>

そしてListBoxItemの取得

コード側ではこのようにして取得できます。

using System.Windows;
using System.Windows.Controls;

namespace Sample_ListBox
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            
            // インデックス参照でListBoxItemを取得する場合
            ListBoxItem itemFromIndex = xListBox.Items.GetItemAt(0) as ListBoxItem;
            // 選択されているListBoxItemを取得する場合
            ListBoxItem itemFromSelection = xListBox.SelectedItem as ListBoxItem;
        }
    }
} 

おしまい。

スポンサーリンク

C#, WPFC#, WPF

Posted by peliphilo