在 WP8 应用程序中,我有一个 ListBox 绑定(bind)到一个带有网格的 ItemsSource,因为它是 ItemsPanelTemplate
。根据用户选择,网格的布局可能每次都不同(不同的行数/列数),我使用辅助类将 ItemsPanelTemplate 网格的行和列定义绑定(bind)到从数据库读取的值。
用户可以将项目添加到应用程序并将每个项目分配给列表框中的网格单元格。每个项目都可以“坐在”多个网格中(多对多关系),这导致我使用另一个绑定(bind)助手类来设置 Grid.Row
和 Grid 的绑定(bind).Column
ListBox.ItemContainerStyle
中的附加属性,绑定(bind)到 ItemsSource 类的属性。
另一个要求是当 Rows.Count >= Columns.Count
时应用程序处于纵向,当列数较多时应用程序处于横向。
我还使用 Toolkit Gestures 进行拖放操作。
所讨论的问题是横向方向的拖拽问题。虽然在 Portrait 上一切都很好,但在 Landscape 方向上,ListBox 变得疯狂。拖动发生在实际被拖动的不同单元格上,其中一些单元格甚至不会引发手势事件(DragStarted、DragDelta、DragCompleted)。
我在这里迷路了,不知道可能是什么问题,也不知道如何解决。
请需要你的灯。
Here is a sample that illustrates the problem.
编辑
呸,这是工具包上的 GestureListener
的一个错误。它不遵循横向方向并将 UIElement 视为以纵向方式呈现。
改用操作事件,它可以正常工作。我可以拿回我的 50 赏金点数吗? :P
最佳答案
如果您正在查看的不是手势监听器而是操纵事件,那么有几个很好的问题:
Drag and drop from list to canvas on windows phone with MVVM
关于xaml - 使用 Toolkit Gestures 拖动在横向方向上变得疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437059/