2016-05-12 6 views
-1

コンバーターにバインドされたTextBoxのテキストを変更するにはどうすればよいですか?編集中にコンバーターからTextBoxを更新する

ユーザーがテキストを入力しているときに、コンバータで直接修正されるようにします。

実際、すべての試行は失敗しました。

ユーザーが入力しているときに、コンバータが新しい値に更新するTextBoxを呼び出すことができないようです。

ありがとうございました。

アップデート1:

私は、Windowsの携帯電話8.1を使用しています。ここ

コンバータがそれを変更したときの値が変更されないテキストボックスである。

<TextBox x:Name="CardNumber" Text="{Binding DisplayedCardNumber, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Converter={StaticResource MyFormatter}}" Style="{StaticResource TextField}" TextChanged="CardNumber_TextChanged" /> 

をアップデート2

  1. テキストボックスにユーザーが "2"
  2. (PropertyChangedのために)テキストにバインドされたコンバータが呼び出される
  3. コンバータはテキスト値を "02"に設定します
  4. コンバータは現在、「02」である元の値を、更新した
  5. ユーザーはまだ見て「2」彼のTextBoxで
  6. 私はテキストボックスが更新されるようにしなければならないのですか?

私はすべてをデバッグしましたが、ユーザーの入力時にコンバータの値の変更がTextBox自体に反映されません。あなたが唯一の後にキーを押して入力してプロパティを更新する必要がある場合は

+1

は、あなたがこのように 'UpdateSourceTrigger'を設定結合しようとしている:' {バインディングテキスト、UpdateSourceTrigger =のPropertyChanged} '? – Pikoh

+0

'TextBox'の' TextChanged'イベントでそれを試してください –

+0

ユーザコントロールを作成する必要があります。 – mohsen

答えて

0

は、 チェックこのリンク

Bind TextBox on Enter-key press

+0

ユーザーが入力中でも変更する必要があります。 – pinkvoid

+0

あなたの要件に関する詳細情報を提供してください。また、コンバータコードを提供してください –

+0

私の質問が更新されました。それは単に文字列を返す標準のコンバータです、 "foobar"としましょう。 TextBoxソース値は更新されますが、TextBox自体には新しい値は表示されず、ユーザーが入力した内容のみが表示されます。 – pinkvoid

関連する問題