2016-07-18 12 views
1

私はUWPアプリケーションのListViewの間にカスタムオブジェクトをドラッグアンドドロップしたいと思います。 ListViewには、カスタムオブジェクトに基づくListViewItemが含まれています。UWPアプリケーションのListView間でカスタムオブジェクトをドラッグアンドドロップするにはどうすればよいですか?

私は必要な機能を実装しようとすると、私はStandardDataFormatsクラスによって提供される選択肢に拘束されているようです。それらのどれも私が何をしたい、と私は

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

ような何かをしようとするとき、私はStorageItemのオブジェクトが渡される要素から作成することができないことを私に言って、COMExceptionを何を得るための権利であると思いません。値のデータ型がDataPackage要素によってサポートされていないことを言って例外をスローSetDataメソッドのパラメータとして別の文字列を使用しようとすると

は:

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

答えて

2

StandardDataFormats.StorageItemsときのために予約されていますあなたのアプリのエクスプローラからファイルをドラッグしています。そのため、設定しようとするとCOM例外が発生します。これは、その形式に対してサポートされていない値です。

アプリ内でオブジェクトを移動しようとしているため、ペイロードにオブジェクト全体を送信する必要はありません。StandardDataFormats.Textペイロードで一意の識別子を送信するだけで済みます。

Here'sこれを達成するための良い例です。

関連する問題