MVVM交互删除触发器



我有一个ListView,需要用作放置目标。我添加了以下触发

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Drop">
        <i:InvokeCommandAction Command="{Binding ItemsDroppedCommand}" 
            CommandParameter="{Binding ???}"/>
    </i:EventTrigger>
</i:Interaction.Triggers>

问题是我不知道怎样才能拿到掉下来的东西。CommandParameter绑定中应该包含什么?

如果我在代码后面做一个丢弃处理程序,我会得到一个DragEventArgs参数,使我能够删除文件。有办法得到这个吗?

如果这是错误的方法,请随时提出替代方案

不支持通过绑定将事件的参数传递给命令,但可以通过一种变通方法实现。

然而,我建议您使用MVVM Light中可用的EventToCommand行为,它正好可以实现以下场景:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Drop">
        <cmd:EventToCommand Command="{Binding ItemsDroppedCommand}"
                            PassEventArgsToCommand="True" />
    </i:EventTrigger>
</i:Interaction.Triggers>

请查看此线程MVVM将EventArgs作为命令参数传递

在这个线程中将帮助您解决问题。我希望这能有所帮助。

最新更新