在WP8应用程序中,我有一个ListBox绑定到一个ItemsSource与Grid,因为它是ItemsPanelTemplate
。根据用户的选择,网格的布局可能每次都不同(不同的行/列数),我正在使用一个helper类,以便将ItemsPanelTemplate网格的行和列定义绑定到从数据库读取的值。
用户可以在应用程序中添加项目,并将每个项目分配给ListBox中的网格单元格。每个项目都可以"坐在"多个网格中(多对多关系),这导致我使用另一个绑定助手类,以便在ListBox.ItemContainerStyle
中设置Grid.Row
和Grid.Column
附加属性的绑定,绑定到ItemsSource类的属性。
另一个要求是当Rows.Count >= Columns.Count
时,应用程序在纵向方向,当列更多时,应用程序在横向方向。
我还使用Toolkit手势进行拖放操作。
所讨论的问题是横向方向上的拖动问题。虽然在纵向上一切都很好,但在横向上,列表框变得疯狂了。拖拽发生在不同的单元格上,那些实际被拖拽的单元格甚至没有引发手势事件(DragStarted, DragDelta, DragCompleted)。
我在这里迷路了,不知道问题是什么,也不知道如何解决。
请开灯。
这里有一个例子来说明这个问题。
编辑
哎呀,这是工具包上的GestureListener
的错误。它不尊重横向,并将ui元素视为在纵向中渲染。
使用可以正常工作的操纵事件。我能拿回我的50赏金点数吗?: P
如果不是手势监听器,而是操纵事件,那么这里有几个很好的问题:
使用MVVM在windows phone上从列表拖放到画布
ScrollViewer中的移动对象