私のページには、ListA と ListB の 2 つの ListView 要素が含まれています。単純なドラッグ アンド ドロップを使用して、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
}
}