Здравствуйте.
И так, в чем же проблема.
Я могу обработать событие через 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 часто есть множество объектов, с которыми мне нужно работать и которые должны быть задействованы в эвентах, да и раз уж начал серьезно этим заниматься, хочу узнать ответы)
Спасибо.