我想在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() );
答案 0 :(得分:2)
当您从应用中的资源管理器中拖动文件时,保留StandardDataFormats.StorageItems
。这就是为什么当你尝试设置它时会得到一个COM异常 - 它是该格式的不受支持的值。
由于您尝试在应用程序内移动对象,因此无需在有效负载中发送整个对象,只需在StandardDataFormats.Text
有效负载中发送唯一标识符。
Here's是如何实现这一目标的一个很好的例子。