MVVM交互丢弃触发器

时间:2012-02-16 08:37:33

标签: wpf mvvm

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

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

问题是虽然我不知道如何获取掉落的物品。 CommandParameter绑定应该包含哪些内容?

如果我在后面的代码中执行了一个drop handler,我会得到一个DragEventArgs参数,它可以让我删除文件。有没有办法得到这个?

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

2 个答案:

答案 0 :(得分:3)

开箱即用支持通过绑定将事件的参数传递给Command,但可以通过a workaround实现。

但是,我建议您使用EventToCommand中提供的MVVM Light行为,这可以实现这种情况:

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

答案 1 :(得分:2)

请查看此主题MVVM Passing EventArgs As Command Parameter

在此主题中将帮助您解决问题。 我希望这有帮助。