我在wpf中创建了我的第一个mvvm应用程序,我来到了需要将文件拖放到ListBox中的点,我看不到任何其他方法来执行此操作但使用DragEnter和Drop事件,然后通过将视图的DataContext强制转换为我的ViewModel并从那里访问集合,将删除的文件添加到我的集合中,这真的很棒。
在drop事件中的View中这样的东西
(this.DataContext as ImageViewModel).ToUpload.Add(new ImageModel() { localfilelocation = fi.FullName })
但还有其他办法吗?
答案 0 :(得分:4)
说实话,拖放可能是MVVM发现最难以自然融入其范例的那些活动之一。但是,最常见的方法是使用附加行为。 DragDropBehaviour
,子类Behavior<T>
将允许您挂钩ListBox
上的这些事件,并具有完全可重复使用的优势。
可以找到一个很好的例子here。