Существует метод, заставляющий элемент управления загружать его содержимое программным способом.
Я предполагаю, что у вас есть какой-то рекурсивный цикл, который просматривает ваши элементы.Прежде чем звонить, чтобы получить его потомков, используйте этот вызов:
if (element is FrameworkElement)
(element as FrameworkElement).ApplyTemplate()
Это заставит его применить свой шаблон и загрузить элементы управления в память.Я полагаю, что это делается из соображений производительности, поскольку элементы управления обычно не нужны, пока они не видны.
Этот подход также работает для TabControl
и любого другого элемента управления, который может скрывать содержимое, я считаю.
Благодарность предоставляется Тао Ляну, который разместил это решение более здесь .Прочтите также, если у вас возникли проблемы с рекурсивным циклом.