SpacePurr
@SpacePurr
c#, wpf

Как обработать событие в рамках MVVM через Interactions.Triggers у подключенной библиотеки?

Здравствуйте.

И так, в чем же проблема.

Я могу обработать событие через Interaction.Triggers таким вот образом
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"

<i:Interaction.Triggers>
     <i:EventTrigger EventName="Drop">
           <ei:CallMethodAction
               MethodName="DropFilesToCollection"
               TargetObject="{Binding}"/>
      </i:EventTrigger>
</i:Interaction.Triggers>


Во ViewModel это будет выглядеть таким вот образом
public void DropFilesToCollection(object sender, DragEventArgs e)
        {
            var files = (string[])e.Data.GetData(DataFormats.FileDrop);
            OpenFileMaster.Add(files);
        }


И все прекрасно работает.

Теперь рассмотрим вторую ситуацию.
Я через NuGet скачал библиотеку для вставки анимаций в Image и подключил ее таким образом
xmlns:gif="http://wpfanimatedgif.codeplex.com"

У этого пакета есть эвент, который ловит момент завершения анимации
gif:ImageBehavior.AnimationCompleted=""
который также как и все другие события можно добавить в Main(там где InitializeComponent) и, я проверил, событие работает.

Однако, если я хочу его обработать во ViewModel, в рамках MVVM, таким образом
<i:Interaction.Triggers>
     <i:EventTrigger EventName="gif:ImageBehavior.AnimationCompleted">
           <ei:CallMethodAction
               MethodName="Image_AnimationCompleted"
               TargetObject="{Binding}"/>
      </i:EventTrigger>
</i:Interaction.Triggers>

то ничего не работает.

Хотелось бы узнать как работать с событиями подключенных библиотек в рамках MVVM.

Я подозреваю, что необязательно все писать через MVVM, но так уж получается, что во ViewModel часто есть множество объектов, с которыми мне нужно работать и которые должны быть задействованы в эвентах, да и раз уж начал серьезно этим заниматься, хочу узнать ответы)

Спасибо.
  • Вопрос задан
  • 1225 просмотров
Решения вопроса 1
FoggyFinder
@FoggyFinder
Написать свой триггер для учета прикрепляемых событий. Как, например, сделано тут:

https://sergecalderara.wordpress.com/2012/08/23/ho...

или тут
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы