gpt4 book ai didi

c# - 仅在单击时才加载每个子 -"folder"的层次结构 C# 组件?

转载 作者:行者123 更新时间:2023-11-30 22:24:41 25 4
gpt4 key购买 nike

我正在修改 a Windows app使用 System.Windows.Control UI 元素,
我想让用户从层次结构中选择一个项目,所以看起来像这样:

tree

除了它不是文件夹,而是远程对象的巨大层次结构,非常深且检索速度慢。
在显示之前加载整个层次结构会太慢,我必须显示第一层,然后在用户单击它时显示在文件夹内。

我正在考虑使用 System.Windows.Control.TreeView 并拦截 TreeViewItem 元素上的选择事件以在需要时填充它们。
问题:这是最佳实践策略,还是有更适合此的 System.Windows.Control UI 元素?

读取所点击元素的每个文件夹内容的组件也是可以接受的。
该应用程序使用 .NET 4.5

最佳答案

如果我理解正确,您希望仅在展开父节点时(例如,通过单击其展开图标)加载子节点。从 UX 的角度来看,在节点扩展时加载子节点确实听起来比在节点选择时加载它们更好。

我不知道有什么东西可以开箱即用,但您可以轻松地自己构建一个。我看到的方法是在每个子节点还没有被获取的节点下添加一个虚拟节点,并在扩展节点的事件处理程序中,检查它是否有一个虚拟节点,并且如果是这样加载它的实际子节点并用它们替换虚拟节点。

虚拟节点使它的父节点看起来是可扩展的(例如,有一个“+”图标或折叠的三角形),这可能正是您所需要的。如果您放置“(正在加载...)”或诸如虚拟标题之类的内容,您将从中获得不错的用户体验。

关于c# - 仅在单击时才加载每个子 -"folder"的层次结构 C# 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12675364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com