Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Как запретить загружаться контролам в TabControl


Автор: DenWPF 21.10.2010, 09:41
У меня есть TabControl, в нем 3 TabItem в каждом из них лежит мой UserControl. Изначально виден только один, но загружаются все.
У меня в них происходит загрузка из базы, по этому занимает не сколько секунд.

Как решить эту проблему?

1. или запретить загружаться не видимым визуально объектам ( как это сделать я не знаю)
2. или запускать все в потоках, но тогда быстро взлетит нагрузка программы.

что посоветуете

Автор: WolfTheGrey 21.10.2010, 12:49
лучше первое.
но ни чего не нашел, как событие: GotFocus. Вызывается при получении элемента фокус 

Автор: DenWPF 21.10.2010, 15:22
тут мне уже подсказали,  создать метод SetData который и будет подгружать инфу.

и поставить событие SelecetChange у TabControl у меня это выглядит так:

Код

string str = ((sender as TabControl).SelectedItem as TabItem).Tag.ToString();
            if (str == "Statistic")
            {
                if (((System.Windows.RoutedEventArgs)(e)).Source.ToString().IndexOf(str) == -1)
                    p_Statistic.UpdateTrainer();
            }
            else if (str == "Students")
            {
                if (((System.Windows.RoutedEventArgs)(e)).Source.ToString().IndexOf(str) == -1)
                    p_Students.UpdateStudentForTrainer();
            }


 if (((System.Windows.RoutedEventArgs)(e)).Source.ToString().IndexOf(str) == -1) - проверяется сейчас какая вкладка включена, если текущая, то не подгружать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)