绑定到键盘输入的Command无法触发问题求助
WPF MVVM Community Toolkit中键盘绑定命令无法触发的问题
我在学习项目中使用MVVM Community Toolkit(v8.2)实现Risk桌游,自定义按钮的Command可以正常工作,但绑定到键盘输入的Command始终无法触发(断点从未命中),无法定位原因。我曾考虑焦点问题,但即使显式设置Window.Focusable=True,或将InputBindings放在背景图片、自定义按钮等子元素上,问题仍存在。查阅了大量相关解决方案,均无法解决此特定问题。相关代码如下:
MainWindow视图XAML
<Window x:Class="RiskMVVM2.MainWindow" ... Width="1820" Height="1062" ResizeMode="NoResize" Name="GameWindow" WindowStartupLocation="CenterScreen" WindowStyle="None" FontFamily="Courier New" FontSize="12" > <Window.InputBindings> <KeyBinding Key="Return" Command="{Binding ConfirmInputCommand}" /> <KeyBinding Gesture="Shift+Return" Command="{Binding SkipPlayerTurnCommand}" /> </Window.InputBindings>
MainWindow构造函数(代码后置)
public MainWindow(RiskBoardVM VM, List<Brush> playerColors) { this.DataContext = VM; ... InitializeComponent(); ... }
相关ViewModel代码
... private bool CanConfirmInput() { return true; } [RelayCommand(CanExecute = nameof(CanConfirmInput))] private void ConfirmInput() { CurrentGame.State.IncrementPhase(); } private bool CanSkipPlayerTurn() { if ((int)CurrentPhase > (int)GamePhase.Place) return true; else return false; } [RelayCommand(CanExecute = nameof(CanSkipPlayerTurn))] private void SkipPlayerTurn() { CurrentGame.State.IncrementPlayerTurn(); } ...
内容的提问来源于stack exchange,提问作者jmcknight00
相关产品推荐
相关产品推荐

