Я ищу события, которые обнаруживают, что TabItem будет изменен, и TabItem инициализируется - PullRequest
0 голосов
/ 22 января 2020

У меня есть TabControl. Я пытаюсь использовать:

 public static IEnumerable<T> FindVisualChildren<T>(DependencyObject rootObject) where T : DependencyObject
    {
        if (rootObject != null)
        {
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(rootObject); i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(rootObject, i);

                if (child != null && child is T)
                    yield return (T)child;

                foreach (T childOfChild in FindVisualChildren<T>(child))
                    yield return childOfChild;
            }
        }
    }

, чтобы найти все текстовые поля из выбранного TabItem.

Я делаю это, потому что у меня есть список с текстом для каждого TextBoxes в TabItem. Когда я изменяю TabItem, я хочу сохранить изменения для последнего TabItem и перезагрузить текст для выбранного TabItem.

Я попытался использовать SelectionChanged в TabControl, но он не работает хорошо, а FindVisualChildren не возвращает никаких текстовых полей. Похоже, это не было инициализировать. Если я запускаю это в Задаче с дилером, ничего не меняется.

Этот метод работает без проблем, когда назначается отдельной кнопке. Но я бы хотел, чтобы это происходило автоматически.

Xaml покажет мне, есть ли событие <EventSetter Event="Initialized" Handler="TabItem_Initialized"/>, но оно выбрасывает Событие Initialized не является RoutedEvent.

Как определить, что TabItem будет изменено раньше , а новый элемент вкладки инициализирован?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...