2012-02-16 43 views
3

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

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

问题是虽然我不知道如何获得丢弃的项目。 CommandParameter绑定应该怎么做?

如果我在后面的代码中执行drop handler,我得到一个DragEventArgs参数,该参数使我能够删除文件。有没有办法得到这个?

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

回答

3

通过有约束力不支持开箱即用,但可以通过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

谢谢你。在调查的同时,我也发现了这个[link](http://weblogs.asp.net/alexeyzakharov/archive/2010/03/24/silverlight-commands-hacks-passing-eventargs-as-commandparameter-to-delegatecommand-triggered- by-eventtrigger.aspx?utm_source = feedburner&utm_medium = feed&utm_campaign = Feed:+ AlexeyZakharov +(Alexey + Zakharovs + Blog)) – John 2012-02-16 09:15:09

+0

@John很高兴我能帮忙:) – 2012-02-16 09:16:14