2

別のページのキャンバスの子として複数の xaml ベースのページが保存されています。アプリケーションの実行時に子ページを追加および削除します。ただし、children コレクションから削除されたページは引き続き実行され、キーボード ショートカットに応答します。古いページを強制的に完全に削除するにはどうすればよいですか?

4

1 に答える 1

2

XAML ページが表示されたら、キーボード イベントを登録しますか? その場合、それらのページを画面から削除するときに、キーボード イベントから登録を解除するのを忘れていませんか?

Silverlight の UserControl または Page クラスには "Unloading" のようなイベントがないため (少なくとも私が知っている限り)、自分のページに、"Cleanup" や"近い"。画面からコントロールを削除する前に、コントロールで Cleanup() を呼び出し、登録されている可能性のあるイベントから登録解除するなどの処理を行います。

イベントから登録を解除しない場合、CLR はオブジェクトがまだ有効であると見なすため、ページのオブジェクトがガベージ コレクションされることはありません。

于 2008-12-01T03:04:34.597 に答える