この記事では 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:
コメント