1
我的頁面包含兩個ListView元素ListA和ListB。您可以使用簡單的拖放操作將項目(對象)從ListA複製到ListB。爲此,我使用列表'DragItemsStarting和下降事件。這工作得很好。現在您可以重新排列ListB中的項目。所有必需的屬性設置(重新排序,拖放),這也適用。重新排序ListView項目:事件和拖放
但現在我想在再整理反應,但我沒有找到一個事件,我可以聽。所以我認爲可以使用同一列表上的拖放事件來了解用戶何時更改了項目的psoition。
那麼我怎麼能認識到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
}
}
有意思。我有一個'ObservableCollection',並且只訂閱了'CollectionChanging'事件。但我確實需要離開'CanReorderItems = True'。在這篇文章的答案有這一切:http://stackoverflow.com/questions/16388867/xaml-c-what-event-fires-after-reordering-a-gridview/16446241#16446241 –