Почему метод SelectTemplate запускается 2 раза в режиме отладки? - PullRequest
0 голосов
/ 29 марта 2010

при отладке этого класса метод SelectTemplate запускается 2 раза, но почему?

Первый раз, когда элемент всегда пуст.

public class PersonDataTemplateSelector : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item,DependencyObject container)
    {
        if (item is Person)
        {
            Person person = item as Person;

            Window window = Application.Current.MainWindow;

            if (System.ComponentModel.DesignerProperties.GetIsInDesignMode( window))
                return null;

            if (person.Gender == "male")               
                return window.FindResource("boysViewTemplate") as DataTemplate;
            else                
                return window.FindResource("girlsViewTemplate") as DataTemplate;

        }
        return null;
    }
}

Ответы [ 2 ]

0 голосов
/ 29 марта 2010

Если ваш селектор должен был выглядеть «Пусто» или «Загрузка», первый вызов - это то, что дает вашему селектору возможность предоставить этот шаблон во время загрузки элементов.

0 голосов
/ 29 марта 2010

Вы можете установить точку останова и проверить трассировку стека, чтобы проверить, но я считаю, что она вызывается один раз с нулевым вводом, когда настраивается визуальное дерево, и второй раз, когда привязки фактически заполняются.

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