在UWP应用程序中通过拖放传输复杂对象的好方法是什么?

时间:2016-06-29 21:11:25

标签: c# uwp

我的c#app上有两个列表,其中list1列出了所有对象,list2是这些对象的选择。我想启用拖放来选择对象。但我不能把这些对象放在DataView中。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我不知道对象类型的结构,但如果它有一些标识符,您可以使用它来存储在DataView中。假设您有一个包含属性MyClass的{​​{1}}个对象列表,您可以将ID作为文本放在ID中。

在开始拖动操作时,您可以执行以下操作:

DataView

在删除所选项目的处理程序中,您可以执行以下操作:

private void List1_DragItemsStarting(object sender, Windows.UI.Xaml.Controls.DragItemsStartingEventArgs e)
{
    var items = new StringBuilder();
    foreach (MyClass item in e.Items)
    {
        if (items.Length > 0) items.AppendLine();
        items.Append(item.ID);
    }
    e.Data.SetText(items.ToString());
    //As we want our Reference list to say intact, we only allow Copy
    e.Data.RequestedOperation = DataPackageOperation.Copy;
}

因此,不是传递对象,而是传递ID。希望这是适合您情况的解决方案。