ユーザーが特定の行のデータを1つのカスタムリストコントロールから別のカスタムコントロールにドラッグアンドドロップできるようにしようとしています。この場合、2番目のリストコントロールは同じアプリケーションの別のインスタンスにあります。インスタンス間でデータをドラッグアンドドロップする
parameterTypedListView.SelectedObjects
Tはフィールド/プロパティとしてのみ値型を含むカスタムクラスであるジェネリックのIListです
DoDragDrop(parameterTypedListView.SelectedObjects, DragDropEffects.Copy);
。
OnDragDropイベントでは、このデータを抽出しようとしましたが、System.MarshalByRefObject
から継承しているようなSystem.__ComObject
...オブジェクトしか取得しません。
要約:実際に使用できるオブジェクト指向の形式でデータを抽出するにはどうすればよいですか?
編集:私のカスタムクラスをシリアライズ可能に設定しても、何の影響もありません。
foreach (var dataObject in (IEnumerable) e.Data.GetData("System.Collections.ArrayList"))
{
// this actually enumerates the correct number of times, i.e. as many times as there are items in the list.
}
しかし、すべてのDataObjectは、私が何か役に立つにキャストすることができないということ、それ自体が、システム.__ ComObjectです:私は__ComObjectを列挙することができます。
...インスタンス間で動作しますか? – Konstantinos
@ Constantinos、はい、同じアプリケーションの複数のインスタンス。 –