この記事では 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 上で選択されているアイテムは、SelectedItems プロパティ に格納されています。
以下の例では、ListBox 上で選択されている全てのアイテムを取得する例です。
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" />
<TextBlock x:Name="myTextBlock" />
<Button x:Name="myButton" Content="選択アイテムを取得" Click="myButton_Click"/>
</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);
}
}
private void myButton_Click(object sender, RoutedEventArgs e)
{
myTextBlock.Text = string.Empty;
// 選択されているすべてのアイテムを取得
foreach (Employee item in myListBox.SelectedItems)
{
myTextBlock.Text += $"{item.Name}\n";
}
}
public class Employee
{
public string Name { get; set; }
}
}
}
[選択されたアイテムを取得] ボタンがクリックされたときに foreach を使用して SelectedItems プロパティからアイテムを1つずつ取り出して TextBlock に表示します。
選択されているアイテム数をカウントする
ちなみに、選択されているアイテムの数は SelectedItems.Count で取得することができます。
WinUi Tips
本サイトでまとめている WinUI Tips の一覧はこちらから確認できます。
Please follow and like us:


コメント