3

基本的に、カスタム クラスに Event があります。カスタム クラスの特定のメソッドを、イベントの引数 -> プロパティをそのメソッドのパラメーターとして使用して呼び出します。

このための実際のコード ビハインド情報を確認できます。

instance.FileOpening += (sender, e) =>
                {
                    CustomClass.Method(e.XXproperty, e.YYproperty);
                };

しかし、MVVMのinteraction.Triggersを通じてこれを達成したいと考えています。だから私はxamlで次のコードを使用しました。

<i:Interaction.Triggers>
     <i:EventTrigger EventName="FileOpening">
          <i:FileOpeningAction TargetObject="{Binding ElementName=cntrol}"/>
     </i:EventTrigger>
</i:Interaction.Triggers>

対応する TargetedTriggerAction クラスは、カスタムクラスにメソッドを実行させるためにここにあります。

public class FileOpeningAction :TargetedTriggerAction<CustomClass>
    {
        protected override void Invoke(object parameter)
        {
            ((instance).TargetObject).Method(?,?);
        }
    }

しかし、私の質問は、上記のアクションで e.XXproperty と e.YYproperty を渡して、カスタム クラスでメソッドを実行するにはどうすればよいですか?

4

2 に答える 2

0

以下のようにすると、「PassEventArgsToCommand」を設定することで、イベント引数をコマンドに渡すことができます。

参照を追加します。

xmlns:cmd="xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF4""

<i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseEnter" >
         <cmd:EventToCommand Command="{Binding FooCommand}"
             PassEventArgsToCommand="True" />
    </i:EventTrigger>
</i:Interaction.Triggers>
于 2014-12-17T10:26:31.687 に答える