2011-01-28 164 views
0

我有一个带有自定义视图的ListView,用于将项目显示为图标。我也有一个普通的OL画布。我希望能够从ListView中拖放一个项目并将其放到画布中。WPF/C#从ListView拖放到画布上

现在我已经看遍了各地的各种教程如何做拖放。看起来,我发现的一切都根本不起作用,或者超出我的需求。连接Canvas上的Drop事件并在ListView中的PreviewMouseMove事件中调用DoDragDrop似乎不起作用。我开始拖动,我得到了画布上的DragEnter/DragOver,但是拖放事件永远不会被触发(光标保持为(/))我已经研究了一些其他解决方案,如DragDrop库或CodeProject上的Drag Drop Smorgasbord。这些似乎旨在从控制中删除实际项目,并将控件放置在其他位置。这不是我所需要的,我需要的只是从ListView中检测Canvas上的放置,传递一些数据(现在它只是一个字符串)并使用该数据在Canvas中构建一个新的UIElement。

是否有比使用DoDragDrop更简单的方法?我希望能够继续拥有装饰者等,但是似乎有些解决方案比我应该做的还要多,而且不会完全按我所需要的去做。

回答

0

您是否在画布上设置了AllowDrop =“True”属性?!? 你的第一个解决方案看起来很整洁,它应该工作。

0

线程创建者在这里...提出了一个未注册的帐户,但注册,因为这个地方很酷!我想出了我的问题。事实证明,我将DragEnter/DragOver中的效果设置为我不应该拥有的东西。

现在我觉得很傻。

感谢您的回复!