【发布时间】:2017-10-09 18:43:18
【问题描述】:
我正在尝试了解如何在用户控件的列表框中处理拖放的文件,并绑定它们以更新我的 ViewModel 中的 ObservableCollection。
这是我在 XAML 中的列表框:
<ListBox x:Name="listDrop" Height="50" Margin="0,0,0,0" AllowDrop="True" Drop="dropfiles" >
</ListBox>
现在是代码隐藏:
public partial class ProcessXML : UserControl
{
public ProcessXML()
{
InitializeComponent();
}
private void dropfiles(object sender, DragEventArgs e)
{
string[] droppedFiles = null;
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
droppedFiles = e.Data.GetData(DataFormats.FileDrop, true) as string[];
}
if ((null == droppedFiles) || (!droppedFiles.Any())) { return; }
listDrop.Items.Clear();
foreach (string s in droppedFiles)
{
listDrop.Items.Add(s);
}
}
}
这列出了要删除的文件的路径,工作正常,但是我如何发送该信息或使用它来处理它?
我想将此数据发送到我的 Viewmodel,理想情况下发送到 ObservableCollection,然后处理每个项目,但我一直在摸不着头脑,找不到方法。我将如何做到这一点?
【问题讨论】:
-
EventToCommand? -
它不起作用,因为在视图模型中无法识别 eventargs e,如果我错过了什么,你能以某种方式详细说明吗?谢谢
-
看看我的回答。