c# - 循环通过 ObservableCollection 动态扩展嵌套项
问题描述
我在default
基于树视图的文件资源管理器上创建了一个文件夹功能,这使系统根据默认路径打开文件夹on load
。
如您所知,您需要使用该IsExpanded
功能来打开treeviewitem
.
我的问题是我不知道如何让它自动遍历每个文件夹并展开直到它到达默认路径(可以设置为任何内容)。
运行上面的代码实现(在运行时):
为了澄清这个问题:这段代码有异味并且不是动态的,是否有更简单的方法,然后循环遍历每个文件夹以找到一个文件夹,展开它,然后进入该文件夹并做同样的事情?
我很高兴在这个问题中添加任何可以提供帮助的内容,并回复任何愿意提供帮助的人。
谢谢你们!
解决方案
您可以使用递归方法:
private void Expand(DirectoryItemViewModel dvm)
{
dvm.IsExpanded = true;
foreach(DirectoryItemViewModel item in dvm.Children)
Expand(item);
}
像这样使用它:
foreach(DirectoryItemViewModel item in Items)
Expand(Item);
推荐阅读
- php - 如何制作倒数计时器而不是倒数计时器?(PHP, JQUERY AJAX)
- python - 在 sympy 图中调整刻度
- c# - 子列表框的滚动触发父滚动查看器“滚动更改”事件
- pickle - 使用 dill / pickle 进行酸洗时出现 TypeError("can't pickle re.Match objects") 错误
- python - 预测一个特征并使用预测的特征来预测目标
- javascript - 部署到 Firebase 会破坏使用 .click() 方法扩展引导手风琴的脚本的执行
- amazon-web-services - 使用依赖于存储桶名称的模板设置 S3 存储桶策略时如何避免循环错误?
- mongodb - pyMongo 将值设置为数组
- javascript - 如何使用 Javascript 更改 Html div 背景
- typescript - 如何使打字稿只允许来自数组的值?