使用 WPF,我成功地实现了拖放以重新排列列表( View 或框)中的项目,并在列表之间拖放项目。
现在我正在尝试弄清楚如何使用嵌套列表实现拖放。
例如,我有一个包含项目的 ListView ,每个项目项都包含另一个任务 ListView 。我希望能够拖放以重新排列项目的顺序,还希望能够重新排序任务并在项目之间移动它们。
我的代码可以成功地完成其中之一,但我不知道如何同时做到这一点。
似乎有某种痛苦的解决方案会涉及 HitTest 以及嵌套列表的 z 顺序,但我找不到任何这样的例子。
任何人都可以提供任何指示吗?
仅供引用:我目前实现的工作代码基于以下两篇关于 WPF 拖放的优秀文章:
http://bea.stollnitz.com/blog/?p=53
http://www.codeproject.com/KB/WPF/ListViewDragDropManager.aspx
最佳答案
由于MouseMove
wpf 中的大多数其他事件都是路由事件,您可以检查 e.OriginalSource
在一个通用的事件处理程序中。然后,您可以根据鼠标所在的元素决定要拖动的元素,可能使用“查找满足条件的父项”辅助方法技术之一。此外,您可以设置 e.Handled
如果您在视觉树中有多个订阅该事件的元素。
关于.net - WPF:如何使用嵌套(分层)控件实现拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/571407/