(я знаю, что это поздний ответ, но я все еще думаю, что он полезен для людей, которые хотят решить эту проблему, без кода )
Хороший способ сделать это в MVVM
Сначала добавьте ссылку:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
и из пакета NuGet (MVVMLight):
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"
Чем в вашем View :
<wpftoolkit:AutoCompleteBox Name="AutoCompleteBoxName">
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewKeyDown">
<cmd:EventToCommand Command="{Binding AutoCompleteEnter}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</wpftoolkit:AutoCompleteBox>
и чем в вашей ViewModel :
public ICommand AutoCompleteEnter { get { return new RelayCommand<System.Windows.Input.KeyEventArgs>(Auto_Complete_Enter); } }
public void Auto_Complete_Enter(System.Windows.Input.KeyEventArgs e)
{
//Detect if key is 'Enter/Return' key
if ((e.Key == Key.Enter) || (e.Key == Key.Return))
{
Console.WriteLine("U have pressed the enter key");
}
}
Надеюсь, это все равно поможет некоторым людям.