1

入力ツリーからさまざまなオブジェクトを表示するカスタム ウィンドウがあります。入力ツリーでオブジェクトがチェックされ、ウィンドウに表示されたら、オブジェクトの「Changed」イベントをサブスクライブします。私は、イベントに複数回登録していないことを絶対に確信しています。私が見ている問題は、色などのオブジェクトに変更を加えると、イベントが 3 回発生することです。

疑似コード:

- Draw a borehole in a custom window<br />
- borehole.Changed += borehole_Changed<br />
- Change the color of the borehole<br />
- See event fire 3 times (I just added debug prints)

編集:
何も変更せずに設定を開いて「OK」をクリックすると、3つのイベントが発生することに気付きました。したがって、実際には色の変更とは何の関係もないと思います。

私もDomainObjectChangeEventArgs PropertyNamesプロパティをチェックしようとしましたが、それは常に空です。

4

3 に答える 3

2

ColorInfo.ColorChanged、ImageInfo.ImageChanged などを優先して、Changed イベントは段階的に廃止されているようです。実際、Changed イベントは、2011 年以降、色の変更に対して発生しなくなりました。イベントが発生する原因となった根本的な原因が他にもあることが判明しました。

とにかく、簡単に言うと、Changed イベントは使用しないでください。

于 2012-02-16T16:48:56.963 に答える
0

私も1つのイベントを取得しています。2011.1 と、ボアホールの ColorInfo の ColorChanged イベントを使用しています。

他のケースでは複数のイベントが表示されますが、これらは、データの変更が他のボアホール関連データへの変更をトリガーしたときに発生します。たとえば、KB を変更すると、基礎となる多くの計算が発生し、複数のイベント トリガーが発生します。

于 2012-02-14T13:45:13.310 に答える
0

この動作を確認できません。1 つのイベントしか取得できません。使用しているバージョンを教えてください。そして - コードまたは設定ページを介して色を変更していますか?

私の場合、両方のケースで単一のコールバックを受け取りました。

ありがとう

于 2012-02-14T08:29:05.330 に答える