4

Red-Gateツールを使用して、System.Windows.DataObjectが、完了してから長い間操作からぶら下がっているdragObject(フレームワーク要素)への参照を保持していることを検出しました。

DragDrop.DoDragDropを実行したら、ドラッグオブジェクトをどのように「クリア」しますか?これを介してヌルを通過させ、それを正しく通過させる方法はありますか?

4

2 に答える 2

6

私はこの宝石を自分で発見しました。私の解決策は、ドラッグされているデータ項目に WeakReference を使用することでした。

DataObject data = new DataObject(new WeakReference(this.draggedData));
DragDrop.DoDragDrop((DependencyObject)sender, data, DragDropEffects.Move);

そしてドロップで

var draggedItem = e.Data.GetData(this.format.Name) as WeakReference;
if (draggedItem != null && draggedItem.IsAlive)
{
    ....
}
于 2012-12-20T06:39:53.787 に答える