如何在UWP应用程序中的ListView之间拖放自定义对象?

时间:2016-07-18 19:02:10

标签: listview uwp uwp-xaml

我想在UWP应用中的ListView之间拖放自定义对象。 ListView包含基于自定义对象的ListViewItem

当我尝试实现所需的功能时,我似乎受到StandardDataFormats类提供的选择的约束。他们似乎都不适合我想做的事情,当我尝试像

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

我得到一个COMException,告诉我无法从传递的元素创建StorageItem个对象。

尝试使用不同的字符串作为SetData方法的参数会抛出一个异常,说明DataPackage元素不支持该值的数据类型:

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

1 个答案:

答案 0 :(得分:2)

当您从应用中的资源管理器中拖动文件时,保留StandardDataFormats.StorageItems。这就是为什么当你尝试设置它时会得到一个COM异常 - 它是该格式的不受支持的值。

由于您尝试在应用程序内移动对象,因此无需在有效负载中发送整个对象,只需在StandardDataFormats.Text有效负载中发送唯一标识符。

Here's是如何实现这一目标的一个很好的例子。