我的c#app上有两个列表,其中list1列出了所有对象,list2是这些对象的选择。我想启用拖放来选择对象。但我不能把这些对象放在DataView中。我该如何解决这个问题?
答案 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。希望这是适合您情况的解决方案。