2012-02-16 42 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