リストとツリー(特定のタイプ名は関係ありません)の2つのコントロールがあります。カスタムオブジェクトをドラッグ&ドロップする
リストコントロールでは、DoDragDropメソッドを実行します。最初の引数として、その行にバインドされたデータであるオブジェクトを渡します。オブジェクトは特定のインタフェースを実装し、Serializable属性でマークされます。
私が欲しいのは、ツリーコントロールのDragEnter/DragDropイベントハンドラでそのオブジェクトを取得することです。私は、次のコードを使用しています:
void TreeControlDragEnter(object sender, DragEventArgs e)
{
var formats = e.Data.GetFormats();
var data = e.Data.GetData(typeof (IFoo));
}
残念ながら、結果のデータがnullで、フォーマットは(IFoo実装)は、特定のタイプの名前を保持する1要素のアレイです。私はオブジェクトを取得するためにGetDataに正確な型名を渡す必要があると仮定しますが、それはプライベートクラスなので不可能です。
インターフェイスからオブジェクトを取得する方法はありますか?