我有一些层次结构,我想在TreeView中显示,但格式化为看起来像ListBox。
我的数据看起来像这样(可能有任意数量的子级别):
Item 1
Child 1
Child 2
Item 2
Child 3
Child 4
我希望数据显示如下(并在需要时换行):
Item 1 Child 1 Child 2 Item 2 Child 3 Child 4
我想使用TreeView,因此我可以维护父项和子项之间的关系,这就是我不想使用ListBox的原因。 谢谢!
答案 0 :(得分:1)
听起来您遇到的问题是您的数据结构和视图之间没有明确的分离。如果你有一棵不是WPF的树,那么将树视图映射到它上应该很容易。如果您有一棵树,则可以创建一个可以在列表视图中使用的树节点分子。
通过这样做,关系永远不会改变 - 只是如何在UI中投射数据。
答案 1 :(得分:0)
我认为最好的方法是实现一个递归函数,它将向下滚动树直到它结束。该函数将引用列表或集合作为参数和当前节点。
这是它的伪代码
Sub GenerateListFromTree(Node oNode, List oList)
AddItemToList(oNode.Name)
For each Node oChildNode in oNode.Nodes
GenerateListFromTree(oChildNode,oList)
Next
AddItemToList(oNode.Name)
For each Node oChildNode in oNode.Nodes
GenerateListFromTree(oChildNode,oList)
Next