2016-07-18 6 views
1

Ich möchte benutzerdefinierte Objekte zwischen meinen ListView s in einer UWP-App ziehen und ablegen. Die ListView s enthalten ListViewItem s, die auf einem benutzerdefinierten Objekt basieren.Wie kann ich benutzerdefinierte Objekte zwischen Listenansichten in UWP-Anwendungen ziehen und ablegen?

Wenn ich versuche, die erforderliche Funktionalität zu implementieren, bin ich offenbar an die Auswahlmöglichkeiten der StandardDataFormats-Klasse gebunden. Keiner von ihnen scheint richtig zu sein, was Ich mag würde zu tun, und wenn ich etwas versuchen, wie

private void ListViewOne_DragItemsStarting(object sender, DragItemsStartingEventArgs e) 
{ 
    e.Data.RequestedOperation = DataPackageOperation.Move; 
    e.Data.SetData(StandardDataFormats.StorageItems, ListViewOne.Items.First()); 
} 

bekomme ich einen COMException, sagt mir, dass StorageItem Objekte können nicht erstellt werden, aus dem Element geführt wird.

verschiedene Strings als Parameter an die SetData Methode zu verwenden versuchen, eine Ausnahme zu sagen, dass der Datentyp des Wertes wird nicht durch das Element Datapackage unterstützt wird:

e.Data.SetData("Custom", ListViewOne.Items.First()); 

Antwort

2

Die StandardDataFormats.StorageItems ist für, wenn Sie reserviert ziehen Dateien aus dem Explorer in Ihrer App. Aus diesem Grund erhalten Sie eine COM-Ausnahme, wenn Sie versuchen, sie festzulegen - dies ist ein nicht unterstützter Wert für dieses Format.

Da Sie versuchen, Objekte innerhalb Ihrer App zu verschieben, müssen Sie nicht das gesamte Objekt in der Nutzlast senden. Sie müssen lediglich eine eindeutige Kennung in einer Nutzlast senden.

Here's ein gutes Beispiel dafür, wie das zu erreichen ist.

Verwandte Themen