我有一个UWP XAML <ListView>
,我希望用户通过拖放来重新排列它。ListViewBase上的The CanReorderItems
property提供了该功能,并且只需要几个属性:
<ListView ItemsSource="{x:Bind Items}"
CanReorderItems="True"
AllowDrop="True"
DragItemsStarting="ListView_DragItemsStarting"
DragItemsCompleted="ListView_DragItemsCompleted">
<!-- ... -->
</ListView>
这成功地让我在ListView中拖放项目,并在ItemsSource
上触发CollectionChanged
事件(先移除再新增)。但是,它不会触发DragItemsStarting
和DragItemsCompleted
事件。
这些事件使我可以原子地处理拖动,而不是依赖于ItemsSource
中的两个CollectionChanged
事件。
如何引发这些事件?Disclaimer: I work for Microsoft.
1条答案
按热度按时间gcmastyq1#
ListView
不会激发DragItemsStarting
和DragItemsCompleted
事件,除非在ListView上将CanDragItems
设置为true:添加此属性后,您会发现这些事件将激发。