この記事では TreeView のノード数を取得する方法について説明をします。
公式サイト情報はコチラを参照してください。
環境
開発環境 | Microsoft Visual Studio Enterprise 2019 Version 16.11.5 |
Framework | Microsoft .NET Framewohttps://blog.hiros-dot.net/?p=11007rk Version 4.8.04161 |
ルートノード数を取得する
ルートノード数を取得するには、RootNodes.Count プロパティを参照します。
以下に例を示します。
この例では XAML でルートノードが3つある TreeView を作成しています。
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 x:Name="myStackPanel" Orientation="Vertical" HorizontalAlignment="Left" > <Button x:Name="myButton" Content="全ノード数を取得" Click="myButton_Click"/> <TextBlock x:Name="myTextBlock" /> <TreeView x:Name="myTreeView" > <TreeView.RootNodes> <TreeViewNode Content="File1" /> <TreeViewNode Content="Folder1" IsExpanded="True"> <TreeViewNode.Children> <TreeViewNode Content="File1" /> <TreeViewNode Content="File2" /> <TreeViewNode Content="File3" /> </TreeViewNode.Children> </TreeViewNode> <TreeViewNode Content="Folder2"> <TreeViewNode.Children> <TreeViewNode Content="FoldrerA"> <TreeViewNode.Children> <TreeViewNode Content="File1" /> <TreeViewNode Content="File2" /> <TreeViewNode Content="File3" /> </TreeViewNode.Children> </TreeViewNode> </TreeViewNode.Children> </TreeViewNode> </TreeView.RootNodes> </TreeView> </StackPanel> </Window>
C# では [全ノード数を取得]ボタンがクリックされた時に、RootNodes.Count プロパティを参照して、ルートノード数を TextBlock に表示しています。
C#の例
private void myButton_Click(object sender, RoutedEventArgs e) { myTextBlock.Text = $"ルートノード数は、{myTreeView.RootNodes.Count} です"; }
選択されているノードの数を取得する
選択されているノード数を取得するには、SelectedNodes.Count プロパティを参照します。
以下に例を示します。
この例では TreeView の SelectionMode プロパティに Multiple を設定し、複数のノードが選択できるようにしています。
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 x:Name="myStackPanel" Orientation="Vertical" HorizontalAlignment="Left" > <Button x:Name="myButton" Content="選択ノード数を取得" Click="myButton_Click"/> <TextBlock x:Name="myTextBlock" /> <TreeView x:Name="myTreeView" SelectionMode="Multiple" > <TreeView.RootNodes> <TreeViewNode Content="File1" /> <TreeViewNode Content="Folder1" IsExpanded="True"> <TreeViewNode.Children> <TreeViewNode Content="File1" /> <TreeViewNode Content="File2" /> <TreeViewNode Content="File3" /> </TreeViewNode.Children> </TreeViewNode> <TreeViewNode Content="Folder2"> <TreeViewNode.Children> <TreeViewNode Content="FoldrerA"> <TreeViewNode.Children> <TreeViewNode Content="File1" /> <TreeViewNode Content="File2" /> <TreeViewNode Content="File3" /> </TreeViewNode.Children> </TreeViewNode> </TreeViewNode.Children> </TreeViewNode> </TreeView.RootNodes> </TreeView> </StackPanel> </Window>
C# では [選択ノード数を取得]ボタンがクリックされた時に、SelectedNodes.Count プロパティを参照して、選択されているノードの数を TextBlock に表示しています。
C#の例
private void myButton_Click(object sender, RoutedEventArgs e) { myTextBlock.Text = $"選択ノード数は、{myTreeView.SelectedNodes.Count} です"; }
WinUi Tips
本サイトでまとめている WinUI Tips の一覧はこちらから確認できます。
Please follow and like us:
コメント