まず、PropertyChanged の UpdateSourceTrigger を使用して、viewmodel への双方向データ バインディングを検討したことは間違いありません。そうすれば、テキストが変更されるたびに、バインド先のプロパティのプロパティ セッターが呼び出されますか?
それだけでは不十分な場合は、Attached Behaviours を使用してこの問題に取り組みます。Julian Dominguez のブログでは、Silverlight で非常に類似したことを行う方法についての記事を見つけることができます。これは、WPF に簡単に適応できるはずです。
基本的に、(TextBoxBehaviours などと呼ばれる) 静的クラスでは、ICommand 型の (おそらく) TextChangedCommand という添付プロパティを定義します。そのプロパティの OnPropertyChanged ハンドラーをフックし、ハンドラー内で、プロパティが TextBox に設定されていることを確認します。そうである場合は、プロパティで指定されたコマンドを呼び出すテキスト ボックスの TextChanged イベントにハンドラーを追加します。
次に、ビューモデルがビューの DataContext に割り当てられていると仮定すると、次のように使用できます。
<TextBox
x:Name="MyTextBox"
TextBoxBehaviours.TextChangedCommand="{Binding ViewModelTextChangedCommand}" />