2014-10-08 93 views
1

我有一個文本編輯和按鈕這樣的:TextEdit_KeyDown事件綁定到一個命令

<dxe:TextEdit Text="{Binding SearchText}" Width="200" Height="25" VerticalAlignment="Center" KeyDown="TextEdit_KeyDown" /> 
<Button Command="{Binding SearchCommand}" VerticalAlignment="Center" Margin="20,0,0,0" > 

當用戶點擊該按鈕,SearchCommand工程成功並返回resulsts。我想當用戶按下輸入時發生同樣的事情。我怎樣才能將TextEdit_KeyDown事件綁定到一個命令,以便得到相同的結果。

回答

2

傳輸距離DevExpress MVVM Framework看看在EventToCommand行爲,總是發送EventArg:

查看:

<UserControl ... 
    DataContext="{dxmvvm:ViewModelSource Type=local:SearchViewModel}"> 
    //... 
    <dxe:TextEdit Text="{Binding SearchText}" Width="200" Height="25" VerticalAlignment="Center"> 
     <dxmvvm:Interaction.Behaviors> 
      <dxmvvm:EventToCommand EventName="KeyDown" 
       Command="{Binding SearchByKeyCommand}" 
       PassEventArgsToCommand="True" 
      > 
     </dxmvvm:Interaction.Behaviors> 
    </dxe:TextEdit> 
    <Button Command="{Binding SearchCommand}" VerticalAlignment="Center" Margin="20,0,0,0" > 
    //... 

ViewModel:

[POCOViewModel] 
public class SearchViewModel { 
    public virtual SearchText { 
     get ; 
     set; 
    } 
    public void Search() { 
     //... 
    } 
    public void SearchByKey(KeyEventArgs) { 
     Search(); 
    } 
    public bool CanSearchByKey(KeyEventArgs args) { 
     return (args.KeyCode == Keys.Enter) && !string.IsNullOrEmpty(SearchText); 
    } 
} 
0
if (e.KeyCode == Keys.Enter) 
    { 
     //Do your stuff 

    } 

e是打電話時,所以你必須要看到什麼是可變

相關問題