c# - 将文件拖放到列表框中

标签 c# wpf mvvm

我正在wpf中创建我的第一个mvvm应用程序,到了需要将文件拖放到ListBox中的地步,我看不到其他方法可以执行此操作,但是使用DragEnter和Drop事件,然后添加通过将 View 的DataContext强制转换为我的ViewModel并从那里访问集合,从而将文件拖放到集合中,这确实很棒。

在放下事件的“我的 View ”中是这样的

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

但是还有其他方法吗?

最佳答案

老实说,拖放可能是MVVM发现最难自然融入其范式的 Activity 之一。但是,最常用的方法是使用附加行为。一个DragDropBehaviour子类化Behavior<T>可以让您了解ListBox上的那些事件,并具有完全可重复使用的优点。

here就是一个很好的例子。

关于c# - 将文件拖放到列表框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090250/

相关文章:

c# - XSLT 扩展对象方法允许的 .NET 返回类型是什么?

javascript - 如何滚动垂直滚动条(而不是整个页面)?

wpf - 如何仅在XAML中设置自动对焦?

wpf - WPF MVVM TreeView选择的项目未填充当前选择对象

silverlight - Prism 2 SL : Remove View from Region when button clicked

java - 什么是生命周期观察器以及如何正确使用它?

c# - 从未知类型的数组创建对象的新实例

c# - 如何将服务注入(inject)AutoMapper?

c# - 与 ListView、UserControl、DependencyProperty、ObservableCollection、INotifyPropertyChanged 的​​绑定(bind)错误

c# - WPF 用户控件 : Invoke usercontrol's public method from viewModel