Aqui está uma abordagem que para mim parece bastante direta e mais fácil do que adicionar um AttachedBehaviour (que também é uma solução válida). Usamos o UpdateSourceTrigger padrão (LostFocus para TextBox) e, em seguida, adicionamos um InputBinding à tecla Enter, vinculado a um comando.
O xaml é o seguinte
<TextBox Grid.Row="0" Text="{Binding Txt1}" Height="30" Width="150">
<TextBox.InputBindings>
<KeyBinding Gesture="Enter"
Command="{Binding UpdateText1Command}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type TextBox}},Path=Text}" />
</TextBox.InputBindings>
</TextBox>
Então os métodos de comando são
Private Function CanExecuteUpdateText1(ByVal param As Object) As Boolean
Return True
End Function
Private Sub ExecuteUpdateText1(ByVal param As Object)
If TypeOf param Is String Then
Txt1 = CType(param, String)
End If
End Sub
E o TextBox está vinculado à propriedade
Public Property Txt1 As String
Get
Return _txt1
End Get
Set(value As String)
_txt1 = value
OnPropertyChanged("Txt1")
End Set
End Property
Até agora, isso parece funcionar bem e captura o evento Enter Key no TextBox.