[WinUI 3][TreeView] ノード数を取得する

スポンサーリンク

この記事では 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:

コメント

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