Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое обновление контрола, проблемы с textBlock 
V
    Опции темы
Remember
Дата 11.6.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: нет
Всего: 1



Доброго времени суток!

Проблема заключается в следующем, динамически создаю большое количество textBlock или label, с определенным содержимым. Помещаю их в ячейки gridInputPoints, который состоит из 4 столбцов, а количество строк передается как параметр из txtQtyOfPoints. В первый раз отрисовка не вызывает никаких нареканий, а дальше начинаются чудеса. При изменении текста в txtQtyOfPoints, кусок кода представленный ниже выполняется снова и происходит наложение на первый ряд последнего gridInputPoints т.е. текст в textBlock или label становится нечитаемым. 

Только начал изучать WPF, может быть ошибка глупая, но как не бился найти её не смог. Может быть ссылка на textBlock или label где-то остается, например в первом ряду gridInputPoints, или ещё чего-то не совсем понятно. Не могу понять :(

Буду благодарен за любую помощь.

Код

            gridInputPoints.RowDefinitions.Clear();
            gridInputPoints.Refresh();
            gridInputPoints.InvalidateVisual();
            if (txtQtyOfPoints.Text != "")
            {
                RowDefinition rowFirst = new RowDefinition();
                rowFirst.Height = GridLength.Auto;
                gridInputPoints.RowDefinitions.Add(rowFirst);
                for (int i = 0; i < Convert.ToInt16(txtQtyOfPoints.Text); i++ )
                {
                    string name = "Row" + Convert.ToInt16(i + 1);
                    RowDefinition row = new RowDefinition();
                    row.Name = name;
                    gridInputPoints.RowDefinitions.Add(row);

                    //TextBlock textBlock = new TextBlock();
                    //textBlock.HorizontalAlignment = HorizontalAlignment.Center;
                    //textBlock.Name = "txtNumber" + Convert.ToInt16(i + 1);
                    //textBlock.Text = "Точка " + Convert.ToInt16(i + 1);
                    //textBlock.Refresh();
                    //textBlock.InvalidateVisual();
                    //Grid.SetRow(textBlock, i + 1);
                    //Grid.SetColumn(textBlock, 0);
                    //gridInputPoints.Children.Add(textBlock);

                    Label lab = new Label();
                    lab.Content = "Точка " + Convert.ToInt16(i + 1);
                    Grid.SetRow(lab, i+1);
                    Grid.SetColumn(lab, 0);
                    gridInputPoints.Children.Add(lab);

                    TextBox textBox = new TextBox();
                    textBox.Text = "Привет " + Convert.ToInt16(i);
                    Grid.SetRow(textBox, i + 1);
                    Grid.SetColumn(textBox, 1);
                    gridInputPoints.Children.Add(textBox);
                }
            }


P.S. gridInputPoints.Refresh() - ререндеринг grid.

Это сообщение отредактировал(а) Remember - 11.6.2009, 21:41
PM MAIL   Вверх
Remember
Дата 18.6.2009, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: нет
Всего: 1



Решил проблему.

Код

GridInputPoints.Children.Clear();


Полностью избавляется от предыдущих данных.
PM MAIL   Вверх
WolfTheGrey
Дата 20.6.2009, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



.Refresh() - очень хорошая штука если дочерняя форма имеет свойство "ShowInTaskbar = false;" и потерялась в рабочем столе среди других окон, то вызвав этот метод, дочерняя форма вылезет на первый план.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.