【发布时间】:2014-08-20 20:11:34
【问题描述】:
我的 ListView 可以进行拖放操作,但我想防止基于位置的某些拖放操作。
列表中的第一项(第 0 行)应保持不变。我根本不想让他们拖它。我还没有找到防止它被明显拖拽的方法,但至少我可以通过在他们开始拖动它时设置item.AllowDrop = false; 来阻止他们丢弃它。
1) 如何防止用户拿起第一个物品?如何防止只有第一行可拖动?
另外,我希望用户能够拿起第 1-n 行,但我不希望他们能够在第 0 行之前放下它们。我希望第 0 行作为第一个项目保持固定位置。例如,如何防止用户拿起第 3 行,然后将其拖放到第 0 行上方?
是否可以重定向放置位置,以便如果他们尝试将其放置在第 0 行上方,我可以使其实际上下降到第 0 行下方(进入新的第 1 行位置)。
在 iOS 中,我可以使用类似
的东西-tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
为了防止第一行移动,我可以使用
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath
将拖放的目标位置从索引 0 更改为索引 1。
2) 防止基于集合中某些位置的拖放的正确 Windows 运行时方法是什么?
【问题讨论】:
标签: c# drag-and-drop windows-runtime