wpf - 键入时文本框没有 KeyboardFocus,因此 KeyBindings 不起作用
问题描述
我在 XAML 库中使用材料设计,我的 TextBoxes 表现得很奇怪。当您在其中输入内容时,不会在 TextBox 上设置 KeyboardFocus,因此键绑定不起作用。当您单击 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}"
推荐阅读
- typescript - 将 api 服务更新为 typescript - TS2339:“Http”类型上不存在属性“实例”
- javascript - 处理程序栏访问数组变量
- ios - Swift:尝试通过共享实例访问类方法时出错
- javascript - 从父母到孩子的传递事件反应未定义
- neo4j - Neo4j Cypher 查询链表以有条件地创建 NEWEST_REPLY 与将 NEWEST_REPLY 修改为 NEXT_REPLY
- reactjs - 我的 TypeScript 和 Reactjs 界面中的对象数组出现问题
- c# - 如何优化这段 C# 代码,使其运行时间不会太长?
- javascript - 菜单打开和关闭动画
- java - 如何在Java中将参数从一个类传递到另一个类?
- c# - 使用 Modbus RTU 协议提取寄存器