我试图将一些分层对象结构转换为Winforms
TreeView
(或某些第三方树视图)。当然我可以逐个节点地构建它,但我需要将数据绑定,因此我不必照顾用户将一些节点添加到TreeView
。我的最高优先级是使数据(由Enumerable表示)和TreeView
之间的数据一致性作为GUI组件。如果我更改了List,我希望更新树并将节点插入到树中。
我的结构如下:
List<sourcelist> lists = new List<sourcelist>()
{
new sourcelist() {
name = "List1",
items = new List<item>()
{
new item() {source_key = "abc", name = "Pete"},
}},
new sourcelist() {
name = "List2"
},
new sourcelist() {
name = "List3",
items = new List<item>()
{
new item() {source_key = "y0h5l2VsrL", name = "Lisa"},
new item() {name = "Kara"},
}}
};
基本上一些名称的源列表包含具有名称和键的项目列表
许多建议引导我ObjectListView,但我也愿意接受更好的解决方案。
我试着这样:
//dataTreeListView1.ParentKeyAspectName = "pid";
//dataTreeListView1.KeyAspectName = "id";
dataTreeListView1.RootKeyValue = 0;
dataTreeListView1.SetObjects(lists);
树只是空的。
我认为主要问题是我无法设置KeyAspectName
和ParentKeyAspectName
来构建树的层次结构。
我还尝试将列表展平并给它一个id为ParentId
的结构,但没有成功。此外,我尝试将List插入DataSet
并将其绑定失败。
真的很感激帮助解决这个问题。