【发布时间】:2021-11-23 05:06:39
【问题描述】:
我有一个如下所示的对象列表:
public class Folders
{
public string name { get; set; }
public string description { get; set; }
public string path { get; set; }
public string id { get; set; }
public AccessType accessType { get; set; }
}
这些对象都是从一个非常丑陋的 JSON 中解析出来的,我已经设法将列表缩小到这个。
我遇到的问题是我需要使用 WPF 创建一个树视图,但现在我在将层次结构创建到树中时遇到了问题。
path 属性具有该特定文件夹的路径。
这是 JSON。
{
"name": "DataRoot",
"description": "Root data directory node",
"path": "DataRoot",
"id": "00000000-0000-0000-0000-000000000000",
"children": [
{
"name": "Second folder",
"description": "Second folder",
"path": "Second folder",
"id": "00000000-0000-0000-0000-000000000001",
"children": [
{
"name": "Third Folder",
"description": "Third Folder",
"path": "Second folder/Third Folder",
"id": "00000000-0000-0000-0000-000000000002",
"children": [
{
"name": "Fourth Folder",
"description": "Fourth Folder",
"path": "Second folder/Third Folder/Fourth Folder",
"id": "00000000-0000-0000-0000-000000000003",
"accessType": {
"read": true,
"write": true
},
"children": []
}
]
},
{
"name": "Fifth Folder",
"description": "Review Required",
"path": "Second folder/Fifth Folder,
"id": "00000000-0000-0000-0000-000000000003",
"children": []
},
{
"name": "Sixth Folder",
"description": "Sixth Folder",
"path": "Second folder/Sixth Folder",
"id": "00000000-0000-0000-0000-000000000004",
"children": [
{
"name": "Seventh Folder",
"description": "Seventh Folder",
"path": "Second folder/Sixth Folder/Seventh Folder",
"id": "00000000-0000-0000-0000-000000000005",
"children": []
}
]
}
]
}
]
}
我似乎无法开发一种算法来使树文件夹中的层次结构...
我正在考虑充分利用path 属性,但我仍然找不到使用它的好方法,以便我可以使树看起来像它应该的那样。
正如我所说的,我的列表是扁平的,但现在我不知道什么是开发层次结构的好算法。
谢谢,请帮忙:)
【问题讨论】: