繁体   English   中英

TreeViewItem 展开事件

[英]TreeViewItem expanded event

您好,我正在使用WPF应用程序,我希望在展开TreeView上的项目之前触发事件。 我知道还没有一个事件,但我不确定如何以我这样做的方式添加一个事件,因此任何帮助将不胜感激。

这是xaml。

 <TreeView x:Name="TreeView" Margin="20">
        <TreeView.Resources>
              <Style TargetType="{x:Type TreeViewItem}">
                   <!-- Some style -->
              </Style>
              <DataTemplate DataType="{x:Type models:DirectoryPathItem}">
                   <!-- some template -->
              </DataTemplate>
        </TreeView.Resources>
 </TreeView>

我正在加载后面的代码。

    private void LoadBaseDirectories()
    {
        var directoryInfo = new DirectoryInfo(@"C:\");

        var directories = directoryInfo.GetDirectories();

        foreach (var directory in directories)
        {
            TreeView.Items.Add(new DirectoryPathItem()
            {
                Children = new ObservableCollection<PathItem>(),
                Path = directory.FullName,
                Header = directory.Name
            });
        }
    }

有没有办法在展开TreeViewItem之前调用事件以便加载子项?

在实际展开之前加载子项可能会导致 UI 无响应,用户无法理解列表为何为空。

我建议添加一个代表后台任务的项目(例如:某种加载微调器),并在发现它们后立即添加适当的项目。

完成后,您可以删除加载微调项目。

这样,您就不需要新事件,用户将了解正在发生的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM