首页 > 解决方案 > 键入时文本框没有 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>

标签: wpfxamlbindingmaterial-design-in-xaml

解决方案


我找到了我的问题的解决方案。这不是焦点问题,而是什么也没发生,因为 updatesourcetrigger 默认设置为 lostfocus,所以当您在我的应用程序中按 enter 时,什么都不会发生,因为您仍然拥有与以前相同的 Entry(Binding Name) 并且它将是忽略。所以解决方案是这样设置的。

Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"

推荐阅读