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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView медленно работает при загрузке данных 
:(
    Опции темы
lomaster
Дата 15.9.2012, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ктож редактирует "боевые" данные? так нельзя
PM   Вверх
leon78
Дата 16.9.2012, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Т.е. надо держать 2 копии коллекции - 1 "боевая", 2я для DataGrid. И при нажатии кнопки "Save" копировать в боевую, а при "Cancel" - из боевой? А попроще варианта нет? Может, можно настроить биндинг, чтобы копирование происходило в заданном направлении по команде, а не постоянно?
PM MAIL   Вверх
lomaster
Дата 16.9.2012, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я же раньше писал - "посмотрите возможности биндинга".
Есть такое свойство UpdateSourceTrigger, установите его в Explicit. Это значит что вы теперьотвечаете за то когда данные попадут в источник.
А дальше что-то типа такого:
Цитата

 BindingExpression b =
      BindingOperations.GetBindingExpression(your_obj, dependency_property );
    if (b != null) be.UpdateSource();
 и так длякаждого сонтрола.
Хотя мне этот вариант не очень...
PM   Вверх
leon78
Дата 16.9.2012, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пытаюсь разобраться как раз с этим Explicit.
Стоит он для всех колонок, но данные из DataGrid все равно попадают в источник

Добавлено через 9 минут и 7 секунд
Во вложении проект. Точка останова на кнопке "Cancel".
Видно, что данные в коллекции обновляются сразу после изменения в DataGrid, не смотря на UpdateSourceTrigger= Explicit

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  test_grid.zip 94,85 Kb
PM MAIL   Вверх
lomaster
Дата 16.9.2012, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Зачем столько колонок?
Их количество только указывает на то, что вы что-то не то делаете.. smile

PM   Вверх
leon78
Дата 16.9.2012, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Количество колонок соответсвует количеству параметров, их не уменьшишь.
Для "Cancel" написал такой код:
Код

            BindingExpression binding =
                dataGrid1.GetBindingExpression(TextBox.TextProperty);
            // Обновить связанный элемент FlowDocument
            binding.UpdateTarget();

Но binding = null, не работает.
Не могу понять, что ставить вместо TextBox.TextProperty ?
PM MAIL   Вверх
leon78
Дата 16.9.2012, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ничего не получается :(
 smile 
PM MAIL   Вверх
erm0l0v
Дата 17.9.2012, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Передайте свой массив в DataGrid.ItemSource и все будет отображаться нормально и при большем количестве строк)))
PM MAIL   Вверх
leon78
Дата 17.9.2012, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня сейчас так и привязано. Не могу разобраться, как сделать копирование из DataGrid в Source и наоборот по командам, а не постоянно.
UpdateSourceTrigger= Explicit не помогает
PM MAIL   Вверх
erm0l0v
Дата 17.9.2012, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В смысле копирование. Коллекция одна просто она же используется и в коде и она же используется для отображения в интерфейсе. Используйте ObserverCollection для отслеживания изменений коллекции.
PM MAIL   Вверх
leon78
Дата 17.9.2012, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Коллекция используется для работы в другом потоке.
Надо, чтобы запись из DataGrid в коллекцию происходила по кнопке "Save". А при нажатии "Cancel" происходило копирование из коллекции в DataGrid для восстановления состояния, предшествующего редактированию.
PM MAIL   Вверх
erm0l0v
Дата 19.9.2012, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В таком случае вам в модели нужно заменить коллекцию и сгенерироворь событие PropertyChanged. Тогда в представлении коллекция тоже заменится.
PM MAIL   Вверх
leon78
Дата 19.9.2012, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не очень понял, речь идет о "Save" или "Cancel"?
И не могу понять, почему при UpdateSourceTrigger= Explicit  после редактирования DataGrid данные сразу же меняются в коллекции?
PM MAIL   Вверх
erm0l0v
Дата 19.9.2012, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Приведите пример кода где у вас к DataGrid цепляется коллекция.
PM MAIL   Вверх
leon78
Дата 19.9.2012, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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