Red-Gateツールを使用して、System.Windows.DataObjectが、完了してから長い間操作からぶら下がっているdragObject(フレームワーク要素)への参照を保持していることを検出しました。
DragDrop.DoDragDropを実行したら、ドラッグオブジェクトをどのように「クリア」しますか?これを介してヌルを通過させ、それを正しく通過させる方法はありますか?
Red-Gateツールを使用して、System.Windows.DataObjectが、完了してから長い間操作からぶら下がっているdragObject(フレームワーク要素)への参照を保持していることを検出しました。
DragDrop.DoDragDropを実行したら、ドラッグオブジェクトをどのように「クリア」しますか?これを介してヌルを通過させ、それを正しく通過させる方法はありますか?
私はこの宝石を自分で発見しました。私の解決策は、ドラッグされているデータ項目に 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)
{
....
}