C#のWPFでComboBoxの表示をカスタマイズ その1

WPFのComboBoxで表示項目をカスタマイズしたい場合、ComboBox.ItemTemplateを定義する。

 

ItemTemplateにDataTemplateを追加。

DataTemplateの中は好きなようにコントロールを配置出来る。

以下の例では、NameとAgeの2つのデータを表示させている。

        <ComboBox x:Name="comboBox">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <WrapPanel>
                        <TextBlock Text="{Binding Name}"/>
                        <TextBlock Text=" ("/>
                        <TextBlock Text="{Binding Age}"/>
                        <TextBlock Text=")"/>
                    </WrapPanel>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>

 

バインドするデータは以下のように定義していて、ListをComboBoxのItemsSourceプロパティへセットしている。

    public partial class MainWindow : Window
    {
        public class ComboItem
        {
            public string Name { get; set; }
            public int Age { get; set; }
        }



        public MainWindow()
        {
            InitializeComponent();

            List<ComboItem> items = new List<ComboItem>();
            items.Add(new ComboItem() { Name = "ichiro", Age = 22 });
            items.Add(new ComboItem() { Name = "jiro",   Age = 21 });
            items.Add(new ComboItem() { Name = "saburo", Age = 20 });
            this.comboBox.ItemsSource = items;
        }
    }

 

実行すると以下のようにNameに後にカッコ付きでAgeを表示できた。

 

 

 

つづく

 

 

 

コメントをお書きください

コメント: 7
  • #1

    QlqzzNwr (土曜日, 07 8月 2021 04:08)

    1

  • #2

    QlqzzNwr (土曜日, 07 8月 2021 04:08)

    1

  • #3

    QlqzzNwr (土曜日, 07 8月 2021 04:09)

    1

  • #4

    QlqzzNwr (土曜日, 07 8月 2021 04:09)

    1

  • #5

    QlqzzNwr (土曜日, 07 8月 2021 04:10)

    1

  • #6

    QlqzzNwr (土曜日, 07 8月 2021 04:10)

    1

  • #7

    QlqzzNwr (土曜日, 07 8月 2021 10:37)

    1