2010-11-18 6 views
2

モデルにバインドされたSilverlightデータフォームがあります。テキストボックス内の値を編集したり、タブアウトしたり、別のコントロールをクリックしたり、取り消しボタンを押したりしない限り、すべてうまくいきます。Silverlight 4 - DataFrom CancelEditは、フォーカスのあるテキストボックスでは機能しません。

キャンセルイベントが正しくトリガーされます。フォーカスを保持するテキストボックスにバインドされているプロパティを除くすべてのプロパティが戻されます。そのテキストボックスの値がモデルに渡されます。

元の値が100のテキストボックスがあると仮定します。これを101に変更し、テキストボックス内にカーソルを置き、[キャンセル]をクリックします。キャンセルをクリックする前に別のテキストボックスにタブを移動したときと同じように値が100に戻ると予想されますが、101にとどまります。

現在のテキストボックスの値をリセットするにはどうすればよいですかイベントをキャンセルしますか?

答えて

0

モデルでIEditableObjectを実装してくださいMSDNにexampleがあります。それは、キャンセルをクリックしたときにDataForm経由で呼び出されるIEditableObject.CancelEdit()の処理です。その時点であなたが望むものにモデルデータを戻すだけです。

+0

テキストボックスから最初にタブアウトすると、インターフェイスが実装され、イベントが処理されます。私が直面している問題は、テキストボックスにフォーカスを置き、打ち消すときです。 – Robert

+0

回避策は、DboKmsQKundenViewDataForm_TextInputStartおよびDboKmsQKundenViewDataForm_EditEndedを渡して、このケースの元の値に戻すことです。 – Robert

関連する問題