2012-02-16 2 views
3

У меня есть ListView, который мне нужно для работы в качестве целевой цели. Я добавил следующий триггерMVVM trigger drop trigger

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

Проблема в том, что я не знаю, как получить упавшие предметы. Что должно произойти в привязке CommandParameter?

Если я выполняю обработчик кавычек в коде, я получаю параметр 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

Спасибо за это. При расследовании я также нашел это [ссылка] (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: + Алексей Захаров + (Алексей + Захаров + Блог)) – John

+0

@John Glad Я мог бы помочь :) –