В MainView моего кода у меня было это событие для перехвата keyDown:
#region Constructor
PreviewKeyDown += SoftKeyMainPreviewKeyDown;
#endregion
private void SoftKeyMainPreviewKeyDown(object sender, KeyEventArgs e)
{
var focusedElement = Keyboard.FocusedElement;
switch (e.Key)
{
case Key.Up:
DoSomething();
break;
.....
}
}
Теперь я хочу переместить это в InputBindings в XAML.
Моя первая попытка:
<UserControl.InputBindings>
<KeyBinding Gesture="Up" Command="{Binding ElementName=_MaschinenView, Path=UpCommand}" />
....
</UserControl.InputBindings>
CodeBehind:
public ICommand UpCommand { get; set; }
UpCommand = new SimpleCommand { ExecuteDelegate = delegate { MoveFocusInDirection(Keyboard.FocusedElement, new TraversalRequest(FocusNavigationDirection.Up)); } };
С этим ничего не происходит.Скорее всего, KeyDown-Event обрабатывается дочерним элементом.
Возможно ли установить previewkeydown в XAML в InputBindings?И как этого достичь?