文本框在键入时没有键盘焦点,因此 KeyBindings 无法正常工作
Textbox does not have KeyboardFocus when typing, KeyBindings not working as a result
我正在使用 XAML 库中的 material 设计,但我的文本框表现得很奇怪。当您在其中键入内容时,KeyboardFocus 未在 TextBox 上设置,因此键绑定不起作用。当您单击 TextBox 时,它具有焦点并且键绑定起作用,但是一旦您开始键入内容,您就会失去焦点,并且必须重新单击 TextBox 才能重新获得焦点。
<TextBox
materialDesign:HintAssist.Hint="Type something..."
Style="{DynamicResource MaterialDesignFloatingHintTextBox}"
Text="{Binding Name}"> <!--this binding works-->
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding SearchCommand}"/>
</TextBox.InputBindings>
</TextBox>
我找到了问题的解决方案。这不是焦点问题,而是什么都没有发生,因为 updatesourcetrigger 默认设置为 lostfocus,所以当您在我的应用程序中按 enter 时,什么也不会发生,因为您仍然有与以前相同的 Entry(Binding Name),它将是忽略。所以解决方案是这样设置。
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"
我正在使用 XAML 库中的 material 设计,但我的文本框表现得很奇怪。当您在其中键入内容时,KeyboardFocus 未在 TextBox 上设置,因此键绑定不起作用。当您单击 TextBox 时,它具有焦点并且键绑定起作用,但是一旦您开始键入内容,您就会失去焦点,并且必须重新单击 TextBox 才能重新获得焦点。
<TextBox
materialDesign:HintAssist.Hint="Type something..."
Style="{DynamicResource MaterialDesignFloatingHintTextBox}"
Text="{Binding Name}"> <!--this binding works-->
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding SearchCommand}"/>
</TextBox.InputBindings>
</TextBox>
我找到了问题的解决方案。这不是焦点问题,而是什么都没有发生,因为 updatesourcetrigger 默认设置为 lostfocus,所以当您在我的应用程序中按 enter 时,什么也不会发生,因为您仍然有与以前相同的 Entry(Binding Name),它将是忽略。所以解决方案是这样设置。
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"