我的页面包含两个 ListView 元素,ListA 和 ListB。您可以通过简单的拖放操作将项目(对象)从 ListA 复制到 ListB。为此,我使用列表的DragItemsStarting和Drop事件。这工作得很好。现在您可以重新排序 ListB 中的项目。所有必需的属性都已设置(重新排序、拖放),这也有效。
但现在我想对诉诸作出反应,但我没有找到我可以听的事件。所以我认为可以在同一个列表上使用拖放事件来了解用户何时更改了项目的位置。
那么如何识别 ListB 的项目已重新排序?
我的代码(使用拖放方法):
private void ListB_DragItemsStarting(object sender, DragItemsStartingEventArgs e) {
var item = ((FeedItem)e.Items[0]);
e.Data.RequestedOperation = DataPackageOperation.Move;
e.Data.SetDataProvider("FeedItem", request => request.SetData(item));
}
private async void ListB_Drop(object sender, DragEventArgs e) {
DataPackageView view = e.Data.GetView();
if (view.Contains("FeedItem") && view.RequestedOperation == DataPackageOperation.Copy) {
//item from ListA
}
if (view.Contains("FeedItem") && view.RequestedOperation == DataPackageOperation.Move) {
//item from ListB
}
}