代码之家  ›  专栏  ›  技术社区  ›  Jonathan Allen

WPF:数据绑定和按键处理程序

  •  0
  • Jonathan Allen  · 技术社区  · 15 年前

    这是我的文本框:

    <TextBox TextAlignment="Right" Text="{Binding PriorityScore, StringFormat=N2}"       
             Name="PriorityScoreBox" TextChanged="PriorityScoreBox_TextChanged" /> 
    

    当我点击“保存”按钮时,一切正常。

    当我按下Control-S时,它不会将待处理的更改保存在文本框中。这是通过页面级按键处理程序完成的。

    我不能用 UpdateSourceTrigger=PropertyChanged 因为它会干扰字符串格式。(用户键入“4”,框自动更改为“4.00”。)

    也许有一种方法可以在按键事件中提交未完成的更改?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Jonathan Allen    15 年前
    Private Sub PriorityScoreBox_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.KeyEventArgs)
      If e.Key = Input.Key.S And CBool(e.KeyboardDevice.Modifiers And ModifierKeys.Control) Then
          Dim bx As BindingExpression = CType(sender, TextBox).GetBindingExpression(TextBox.TextProperty)
       bx.UpdateSource()
     End If
    End Sub
    
    推荐文章