Ребят, хитрый вопрос по поведению приложения: есть "морда к базе". Перед работой, разумеется, делается логин в базу (юзер вводит пароль). Только после этого становятся доступными данные таблиц.
НО(!) на главной форме есть комбобокс, куда засасываются справочные данные, используя сам же XAML:
<ComboBox ItemsSource="{Binding PersonStatus, Source={x:Static local:App.Current}}" />
Проблема в том, что как только главная форма инициализирована (но до логина), она пытается заполнить комбобокс и лезет в App.PersonStatus , который разумеется требует уже авторизованное соединение с базой, а оно у меня ещё null.
Решение №1 — тупо загружать комбобокс из кода. Что совсем не интересно и не эстетично.
Решение №2 МОГЛО БЫ сработать, если бы у комбобокса была отложенная загрузка. Что обидно: где НЕ надо, отважные индусы вкорячили в WPF "отложенную загрузку" всего и вся, но вот для ItemsSource её почему-то нет! (ведь я ещё не раскрывал ComboBox, зачем УЖЕ сосать туда данные?)
Решение №3 — открывать отдельное read-only соединение к базе (ещё перед инитом формы) и сосать справочные данные оттуда. Но это костыль и самое последнее, что хочется делать.
Есть какие-то ещё варианты, как задержать загрузку ItemsSource?