在MVVM-Light工具包中使用EventToCommand时如何传递多个参数和EventArgs属性

时间:2010-08-19 17:04:38

标签: wpf mvvm mvvm-light mvvm-toolkit

我正在为我的WPF应用程序使用MVVM Light工具包,我想知道在使用EventToCommand时是否可以将多个参数传递给RelayCommand并且是否可以传递EventArgs的属性而不是传递整个EventArgs? / p>

此致 纳比尔

2 个答案:

答案 0 :(得分:2)

如果方案是

,该怎么办?
 <i:Interaction.Triggers>
                <i:EventTrigger EventName="KeyDown">
                    <cmd:EventToCommand Command="{Binding SearchKey}" PassEventArgsToCommand="True" 
                    CommandParameter="{Binding Text, ElementName=TextSearchCashDrawer}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>

输入按键是什么我需要从文本框中读取文本并执行搜索。

        SearchKey=new RelayCommand<KeyEventArgs>(e=>
                                                     {
                                                         if(e.PlatformKeyCode==13) //enter key
                                                         {


                                                         }
                                                     });

使用这个我可以过滤已经按下了哪个键,但是如果在这个mvvmlight中按下回车键,如何获取该参数。

答案 1 :(得分:2)

如果你要做的就是按住回车键,你可以通过InputBinding创建一个KeyBinding。 XAML中的以下示例将捕获TextBox中的Enter键,在这种情况下,Command,FindCommand将在ViewModel中处理它。

<TextBox Width="80">
     <TextBox.InputBindings>
          <KeyBinding Key="Enter" Command="{Binding FindCommand}" />
     </TextBox.InputBindings>
</TextBox>

为我工作!