实测代码没问题,放在另外新建上都可以运行,怀疑是dev引用dll机制有关系,因为我是拷贝其他项目代码,然后手动添加缺少的dll。所以不能简单复制,还是需要自己新建就没有问题。。。
后续:实测同样新的一个treelist在页面可以直接赋值DataSource并显示,放在自定义控件就不行,自定义控件里面的必须要用AppendNode和添加列才行
基于此规律,测试可以新建一个list对象类,里面的属性为改tree列colums的字段名称FieldName中实际的treeListColumn名字,再使用DataSource也能实现显示,这样也很方便,可以直接定义对象类的属性为tree的列,然后隐藏一些不需要的属性不显示就好了。实际测试对象里面属性多了也没事,页面只显示关联字段名称FieldName里的数据
新增不显示问题:DataSource方法绑定数据需要先null再赋值新数据,普通节点添加AppendNode(new object[] { projectName}, -1)需要ClearNodes或者Columns.Clear和Nodes.Clear。
参考https://www.cnblogs.com/feilong3540717/articles/1980163.html
直接通过DataSource方法绑定带节点数据,效果如下:
绑定的数据源ID必须要不同否则会报错,父ParentID相同就会多一节节点