2012-02-08 5 views
0

私はHere を読んで、登録されていないイベントについては混乱しています。ボタンがあり、クリックイベントのために登録されていることを意味します。 ほとんどのUI要素は、一部のイベントで登録されるためです。私は(loadCompletedのように)明示的に登録されていないイベントできるモデルとのviewmodelでメモリリークを減らすために、すべてのUI要素のイベントの登録を解除する必要がありますか?

それはメモリリークを減らすために、すべてのUI要素の登録解除のイベントに必要ですか?

+0

あなたの質問は何ですか? –

+0

@ Erno:すべてのUI要素のメモリリークを減らすために、イベントの登録を解除する必要がありましたか? – Mahantesh

答えて

0

ビューをメモリに保持するイベントハンドラの登録を解除するだけで済みます。

ViewModelオブジェクトを保持する(別のビューに渡すなど)場合は、ViewとViewModel間のバインディングによってメモリ内のビュー(到達可能)が保持される場合があります。あなたがViewModelを保持していない場合は、これを危険にさらします。 (しかし、あなたはビューモデルへの参照を保持していないことを非常に特定のこと)

A good description of this problem (and solutions) can be found here

+0

私はその記事を読んだが、cionfusedを読んだ。 reuqiredがボタンのClickイベントを明示的に登録解除するようにしてください。 – Mahantesh

+1

クリックハンドラがビューのコードビハインドにある場合。問題はありません。あなたは登録を解除する必要はありません。たとえば、ボタンのCommandプロパティをViewModelにバインドしてBindingを使用する場合は、このバインディングの登録を解除する必要があります。 –

+0

@エルノー...ありがとう、私は安全です...今、私の疑いは明らかです。 – Mahantesh

関連する問題