Silverlight にもありませんFrameworkElement.IsLoaded
。WinRT は WPF よりも Silverlight にはるかに近いです。
削除された理由については、WPF プロパティのドキュメントに基づいて推測できます。
新しく構築された FrameworkElement から、このプロパティは false から始まり、true に設定された後、接続された論理ツリーから要素が後でコードによって削除されても、true のままになります。true 状態は、エレメントがプレゼンテーション エンジンにロードされるときに、一般的なプレゼンテーション ロジックによって設定されます。
基本的に、WPF のプロパティは時々間違っています。コントロールは複数回ロード (およびそのLoaded
イベントを発生) し、その間にアンロードすることができます。WPFIsLoaded
プロパティは、実際には読み込まれていない場合でも、コントロールが読み込まれていることを示すことができます。それは...とても悪いです。
次の理由の少なくとも 1 つが原因で、修正するのではなく削除した可能性があります。
- WPF 内で古いバージョンとの互換性を壊したり、WPF と SL / WinRT で異なる動作をするプロパティを持ちたくなかった。
- 何かがロードされているかどうかを追跡することは難しく、間違えやすいため、本質的に危険です。
- コントロールのロードされた状態を照会することは、とにかく悪い習慣/悪い考えかもしれません
Unloaded
本当に自分で実装したい場合は、少なくともLoaded
. しかし、あなたがしようとしていることによっては、より良い解決策があるかもしれないと思います.