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

时间:2010-11-12 03:03:53

标签: wpf binding

这是我的文本框:

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

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

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

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

也许有一种方法可以在关键的新闻发布会上提交未完成的更改?

1 个答案:

答案 0 :(得分:0)

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