Gre*_*Gum 4 c# xaml caliburn.micro
我有一个包含以下内容的文本框:
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyUp" >
<cal:ActionMessage MethodName="OnKeyUp" >
<cal:Parameter Value="$eventArgs"/>
</cal:ActionMessage>
</i:EventTrigger>
Run Code Online (Sandbox Code Playgroud)
如果我运行此命令,则会生成一条错误消息,指出"找不到Method OnKeyUp的目标".如果我从消息和方法中删除参数,那么它运行正常.
这是方法.
public void OnKeyUp(object sender, KeyEventArgs e) {
MessageBox.Show(e.Key.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我不明白这是什么问题.
dev*_*tal 11
您的视图模型方法有两个参数,但您只传递一个参数.
更改您的视图以通过$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>
Run Code Online (Sandbox Code Playgroud)
或者更改您的方法以获取事件参数:
public void OnKeyUp(KeyEventArgs e) { ... }
Run Code Online (Sandbox Code Playgroud)
你也可以用更好的速记:
<TextBox cal:Message.Attach="[Event KeyUp] = [Action OnKeyUp($source, $eventArgs)]" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4895 次 |
| 最近记录: |