Tôi có 2 điều khiển một biểu mẫu: danh sách và một cây (tên loại cụ thể không liên quan).Kéo và thả đối tượng tùy chỉnh
Trong điều khiển danh sách, tôi thực thi phương thức DoDragDrop. Khi đối số đầu tiên tôi chuyển một đối tượng là dữ liệu được liên kết với hàng đó. Đối tượng thực hiện một giao diện cụ thể và được đánh dấu bằng thuộc tính Serializable.
Điều tôi muốn là truy xuất đối tượng đó trong trình xử lý sự kiện DragEnter/DragDrop của điều khiển cây. Tôi đang sử dụng đoạn mã sau:
void TreeControlDragEnter(object sender, DragEventArgs e)
{
var formats = e.Data.GetFormats();
var data = e.Data.GetData(typeof (IFoo));
}
Thật không may, trong kết quả dữ liệu là null và các định dạng là một mảng một yếu tố mà giữ tên của loại hình cụ thể (thực hiện IFoo). Tôi giả sử rằng tôi sẽ phải truyền tên kiểu chính xác cho GetData để trả về đối tượng, nhưng không thể vì nó là một lớp riêng tư.
Có cách nào để nhận đối tượng bằng giao diện của nó không?