这份原稿.没有绑定参数的微动作

本文关键字:参数 绑定 | 更新日期: 2023-09-27 18:11:04

我有一个文本框,内容如下:

<i:Interaction.Triggers>
 <i:EventTrigger EventName="KeyUp" >                                               
     <cal:ActionMessage MethodName="OnKeyUp" >
          <cal:Parameter Value="$eventArgs"/>
     </cal:ActionMessage>
 </i:EventTrigger>

如果我运行这个,会产生一个错误消息说"没有找到OnKeyUp方法的目标"。如果我从消息和方法中删除参数,那么它就可以正常运行。

就是这个方法。

public void OnKeyUp(object sender, KeyEventArgs e) {
        MessageBox.Show(e.Key.ToString());
    }

我不明白有什么问题

这份原稿.没有绑定参数的微动作

你的视图模型方法有两个参数,但是你只传递了一个。

改变您的视图以通过$source:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="KeyUp">
        <cal:ActionMessage MethodName="OnKeyUp" >
           <cal:Parameter Value="$source" />
           <cal:Parameter Value="$eventArgs" />
        </cal:ActionMessage>
    </i:EventTrigger>
</i:Interaction.Triggers>

或者将方法更改为只接受事件参数:

public void OnKeyUp(KeyEventArgs e) { ... }

你也可以使用更好的简写:

<TextBox cal:Message.Attach="[Event KeyUp] = [Action OnKeyUp($source, $eventArgs)]" />