silverlight – 在XAML中按“ENTER”键时调用命令

silverlight – 在XAML中按“ENTER”键时调用命令,第1张

概述我想在TextBox中按ENTER键时调命令。考虑以下XAML: <UserControl ... xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" ...> ... <TextBox> 我想在TextBox中按ENTER键时调用命令。考虑以下XAML:

<UserControl     ...     xmlns:i="clr-namespace:System.windows.Interactivity;assembly=System.windows.Interactivity"     ...>         ...         <TextBox>          <i:Interaction.Triggers>               <i:EventTrigger Eventname="KeyUp">                    <i:InvokeCommandAction Command="{Binding MyCommand}"                                           CommandParameter="{Binding Text}" />               </i:EventTrigger>          </i:Interaction.Triggers>     </TextBox>         ...    </UserControl>

MyCommand如下:

public ICommand MyCommand {     get { return new DelegateCommand<string>(MyCommandExecute); }}private voID MyCommandExecute(string s) { ... }

以上,我的命令是为每个按键调用的。当按下ENTER键时,如何限制该命令才能调用?

我明白,使用Expression Blend,我可以使用条件,但是似乎只限于元素,不能考虑事件参数。

我也碰到了SLEX,它提供了自己的InvokeCommandAction实现,它建立在Systems.windows.Interactivity实现之上,可以做我所需要的。另一个考虑是写我自己的触发器,但我希望有一种方法可以在不使用外部工具包的情况下执行。

解决方法 表达式共有 KeyTrigger。

<UserControlxmlns:i="clr-namespace:System.windows.Interactivity;         assembly=System.windows.Interactivity"xmlns:IEx="clr-namespace:Microsoft.Expression.Interactivity.input;           assembly=Microsoft.Expression.Interactions" ...>         <TextBox>         <i:Interaction.Triggers>            <IEx:KeyTrigger Key="Enter">               <i:InvokeCommandAction Command="{Binding PasswordLoginCommand}" />            </IEx:KeyTrigger>         </i:Interaction.Triggers>     </TextBox>    </UserControl>
总结

以上是内存溢出为你收集整理的silverlight – 在XAML中按“ENTER”键时调用命令全部内容,希望文章能够帮你解决silverlight – 在XAML中按“ENTER”键时调用命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1004237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存