アプリケーションの開始から終了までのイベントの発生順を整理しました。
クラス | イベント | 補足 |
---|---|---|
Application | コンストラクタ | |
Application | Startup | |
Application | Navigating | |
MainWindow | コンストラクタ | |
MainWindowViewModel | コンストラクタ | |
MainWindow | DataContextChanged | |
MainWindow | Initialized | |
App | Activated | |
MainWindow | Loaded | |
MainWindow | Activated | ActivatedとLoadedに注意が必要。WindowのフォーカスのON/OFFでActivatedとDeactivatedイベントが発生するが、LoadedはWindowオブジェクト生成初回のみ発生する。 |
MainWindow | Closing | |
MainWindow | Deactivated | |
App | Deactivated | |
MainWindow | Closed | |
App | Exit |
ViewModelに関しては、どう設定するかによって大きく変わるので注意が必要です。ここでは以下のようにXAMLに記述しています。
<Window x:Class="Kamishibai.Wpf.Demo.MainWindow" ...> <Window.DataContext> <local:MainWindowViewModel/> </Window.DataContext>
DIコンテナからロードする場合も、代替同様になるでしょう。DIコンテナによってやや異なる可能性はありますが。