Учитывая уже загруженный и обработанный TabControl с тремя вкладками, с выбранной вкладкой, имеющей индекс 1 (средняя):
Вкладка 1: имеет один TextBox
Вкладка 2: имеет два текстовых поля
Вкладка 3: имеет три текстовых поля
Если я перебираю визуальное дерево selectedItem с помощью VisualTreeHelper, я получу два текстовых поля в дочерних элементах TabControl.
Я хочу повторить итерацию, когда выбор вкладки изменится, и получить доступ к элементам управления новой вкладки. Если я переключусь на индекс табуляции 2, я должен найти три текстовых поля, используя VisualTreeHelper.
Обычным решением было бы подписаться на событие изменения выбора и пройти по дереву, чтобы получить вновь показанные элементы управления. Проблема в том, что в данный момент в визуальном дереве все еще есть старая вкладка, что делает этот поиск бесполезным.
Как мне перехватить момент, когда отображается новый TabItem, и запустить поиск?
Я создаю механизм динамической проверки, который отслеживает все элементы управления вводом данного пользовательского интерфейса, даже когда он изменяется либо путем изменения шаблона ContentControl, либо изменения выбранной вкладки TabControl ... Надеюсь, вы получите изображение.
Есть идеи?