1

Visual Studio2012Ultimateで.NET4.5を使用してWindows8アプリを開発しました。

私が抱えている問題は、コード内のTextBoxのテキスト値を指定できる場合、OnChangedイベントが発生し、予測できない方法のように見え、OnChangedイベントハンドラーのコードが発生したくないときに発生することです。

例えば

OnChangedイベントハンドラーに、ユーザーがTextBox内のテキストを変更したときに、アプリのステータスを「編集中..」に更新するコードがある場合があります。ただし、コード内のテキストを自分で変更した場合にステータスを変更したくありません。

そこで、OnChangedイベントのコードを実行できるかどうかを制御する「Updating」というグローバル変数を作成しました。

updateをtrueに設定してから、textbox textプロパティをある値に設定し、Updateing変数をfalseに設定します。問題は、Updateing変数をfalseに設定した後、TextBoxのOnChangedイベントが発生しているように見えるため、イベントハンドラーのコードが発生することです。

これは、Win8アプリの非同期性と関係があると思います。

この問題を解決する方法を知っている人はいますか?この動作に関するいくつかの背景情報も役立ちます。

4

2 に答える 2

2

テキストを更新して後で追加する前に、イベントハンドラーを削除しないのはなぜですか?

于 2012-11-12T10:51:12.963 に答える
0

私はまったく同じ振る舞いをしていて、それを解決する方法がわかりません。また、textbox.Textのプログラムによる更新中に設定され、TextChangedイベントを終了することを目的としたグローバル変数IsUpdatingがあります。しかし、アディが上で述べたように。これらのイベントは、updateメソッドを終了した後に発生するため、IsUpdatingはfalseにリセットされます。結果として、イベントは完全に実行され、Modified-Flagが設定されます。

この問題はアプリホットラインに報告されており、すぐに解決されることを願っています。

于 2012-11-28T18:00:27.843 に答える