如何交换树视图控件中的项目?
我有一个树视图控件:
- 父项 1
- 子项目 1
- 子项目 2
- 子项目 3
- 父项目 2
- 子项目 1
- 子项目 2
- 子项目 3
- 父项目 3
- 子项目 1
- 子项目 2
- 子项目 3
我想要移动父项目 2,以及我想要的子项目将子项向上/向下移动到其父级别。
ps 我已经用数据库完成了此操作,但是每次移动操作都重新绑定树视图是性能问题。
I have a treeview control:
- Parent Item 1
- Child Item 1
- Child Item 2
- Child Item 3
- Parent Item 2
- Child Item 1
- Child Item 2
- Child Item 3
- Parent Item 3
- Child Item 1
- Child Item 2
- Child Item 3
I want to move, for example Parent Item 2, up or down with its child items as well as i want to move child items up/down for its parent level.
p.s. I've done this with database, but it's performance issue to rebind treeview every move operation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我使用了
此处 这里过去在TreeView
中拖放 UI 项目基本上它会找到保存集合的父控件,使用 ItemContainerGenerator 查找保存拖动项目的容器,然后将容器移动到父控件内的新位置
I have used a modified version of the code found
herehere in the past to drag/drop UI items in aTreeView
Basically it finds the parent control that holds the collection, uses the ItemContainerGenerator to find the container that holds the dragged item, then moves the container to the new location within the parent control
也许是与您的自定义对象的双向绑定?您可以按顺序属性为树视图模型添加自定义排序器,例如...
Perhaps a two way binding with your custom object ? You can add a custom sorter for the treeview View model by order property for example...
那行不通吗?
Couldn't that work?
下面的例子对我来说是可行的。选择一个子节点并与其父节点交换。
The following example is workable for me. Select a child node and swap with its parent node.