В этом отношении я использую шаблон Singleton.Если вы знакомы с PRISM и его Bootstrapper, это немного похоже.
Основная идея здесь - переопределить метод OnStartup
в вашем App.xaml.Поведение по умолчанию отображается в xaml StartupUri="MainWindow.xaml"
, вам придется удалить это свойство.
В методе переопределения OnStartup
я использую класс, который создает все мои объекты (Views, ViewModels, link DataContexts)...) и запускает событие, когда инициализация завершена.
В это время я закрываю заставку и показываю полностью загруженное приложение (InitializeComponent
вызывается при создании MainWindow
, поэтомубыть уже вызванным в это время).
Для более расширенного использования вы можете добавлять события в свои окна и EventHandler
s в свой класс начальной загрузки.Я использую его, например, когда я хочу полностью обновить свое приложение (перезагрузить его), а также для запросов к базе данных (которые, в моем случае, выполняются только при запуске приложения для загрузки референции).
Надеюсь, что этопомогло:)