[WinUI 3][ListBox] アイテムを選択状態にする

スポンサーリンク

この記事では コードから ListBox のアイテムを選択状態にする方法について説明をします。

公式サイト情報はコチラを参照してください。

環境

開発環境 Microsoft Visual Studio Enterprise 2019
Version 16.11.5
Framework Microsoft .NET Framewohttps://blog.hiros-dot.net/?p=11007rk Version 4.8.04161

インデックスを指定してアイテムを選択する

ListBox のアイテムはインデックスを指定して選択することができます。

インデックスを指定するには SelectedIndex プロパティを使用します。

以下の例では、表示されているアイテムの先頭から2番目のアイテムを選択してます。インデックスは0から数えますので、SelectedIndex には 1を指定します。

XAML の例

<Window
    x:Class="WinUISample.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:WinUISample"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <StackPanel Orientation="Vertical" HorizontalAlignment="Center">

        <ListBox x:Name="myListBox"
                 SelectionMode="Multiple"
                 ItemsSource="{x:Bind employees}"
                 DisplayMemberPath="Name" />

    </StackPanel>
</Window>

C# の例

using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using System.Collections.ObjectModel;

// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.

namespace WinUISample
{
    /// <summary>
    /// An empty window that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainWindow : Window
    {
        ObservableCollection<Employee> employees = new ObservableCollection<Employee>();

        public MainWindow()
        {
            this.InitializeComponent();

            // アイテムを複数選択できるようにする
            myListBox.SelectionMode = SelectionMode.Multiple;

            for (int i = 1; i <= 3; i++) 
            { 
                Employee employee = new Employee(); 
                employee.Name = $"User{i.ToString()}";
                employees.Add(employee);
            }
            
            // 先頭から2番目のアイテムを選択
            myListBox.SelectedIndex = 1;

        }

        public class Employee
        {
            public string Name { get; set; }
        }
    }
}

インデックスを指定してアイテムを選択する例

インデックスを指定してアイテムを選択する例

WinUi Tips

本サイトでまとめている WinUI Tips の一覧はこちらから確認できます。

Please follow and like us:

コメント

タイトルとURLをコピーしました