Кнопки работают нормально, как ожидается, нажав на них.UserControl InputBindings Работает только после нажатия кнопки
Проблема: Когда пользователь загружен в первый раз, и я не нажал ни одной кнопки в нем, Keybinds не работают. После нажатия кнопки вручную keybinds do work как и предполагалось. Так, очевидно, я хотел бы, чтобы пользователь мог использовать keybind перед любым нажатием :)
(я уже пытался установить фокус на различные элементы, такие, как сама кнопка)
Пример кода, как я настройка мои команды: (используя MVVM-легкий инструментарий)
ContextBinding
DataContext="{Binding GameInfoViewModel, Source={StaticResource Locator}}"
Посмотреть
<UserControl.InputBindings>
<KeyBinding Key="Right" Command="{Binding NextCommand}"/>
</UserControl.InputBindings>
//...
<mui:ModernButton Name="ModernButtonNext" IconData="{StaticResource NextIcon}" Command="{Binding NextCommand}" Margin="16 0 0 0" EllipseDiameter="24" IconWidth="14" IconHeight="14" ToolTip="Next image"/>
ViewModel
private RelayCommand _nextCommand;
/// <summary>
/// Gets the NextCommand.
/// </summary>
public RelayCommand NextCommand
{
get
{
return _nextCommand ?? (_nextCommand = new RelayCommand(
ExecuteNextCommand,
CanExecuteNextCommand));
}
}
private void ExecuteNextCommand()
{
SelectedGameImageIndex += 1;
}
private bool CanExecuteNextCommand()
{
if (SelectedGameImageIndex >= GameImages.Count - 1)
{
return false;
}
return true;
}
Для KeyBinding работы , ваше окно должно сосредоточиться на нем. Я сомневаюсь, что окно не в фокусе. –
@RohitVats мое приложение - одно окно, оно загружает UserControls в виде представлений. Содержимое находится в сетке. если я помещаю пустую кнопку где-нибудь внутри этой сетки (которая не привязана или что-то еще), и я нажимаю на нее, что Keybinds там работают. – Jim