将文件拖放到列表框中

时间:2014-01-13 11:33:18

标签: c# wpf mvvm

我在wpf中创建了我的第一个mvvm应用程序,我来到了需要将文件拖放到ListBox中的点,我看不到任何其他方法来执行此操作但使用DragEnter和Drop事件,然后通过将视图的DataContext强制转换为我的ViewModel并从那里访问集合,将删除的文件添加到我的集合中,这真的很棒。

在drop事件中的View中

这样的东西

 (this.DataContext as ImageViewModel).ToUpload.Add(new ImageModel() { localfilelocation = fi.FullName })

但还有其他办法吗?

1 个答案:

答案 0 :(得分:4)

说实话,拖放可能是MVVM发现最难以自然融入其范例的那些活动之一。但是,最常见的方法是使用附加行为DragDropBehaviour,子类Behavior<T>将允许您挂钩ListBox上的这些事件,并具有完全可重复使用的优势。

可以找到一个很好的例子here