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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос по RaisePropertyChanged(), можно ли бросить его в конце? 
:(
    Опции темы
lankin
Дата 25.3.2011, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



собственно вот такой вопрос: у меня происходит заполнение
Код

ObservableCollection<User> user = new ObservableCollection<User>();
.
.
.
user.Clear();
foreach(User userFromQuery in userReturned)
{
    user.Add(userFromQuery);
}

Здесь каждый раз когда я добавляю нового юзера происходит вызов RaisePropertyChanged.  Следовательно каждый раз происходит перерисовка. 

Есть ли способ бросить событие только в конце?
PM MAIL   Вверх
-Mikle-
Дата 28.3.2011, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Насколько я знаю (надеюсь что не ошибаюсь), если вы выполняете этот код в основном потоке, то перерисовки не будет, так как приоритет выполняемого кода выше, чем приоритет отрисовки. Следовательно, перерисовка должна произойти один раз после выполнения этого кода, не смотря на множественный вызов CollectionChanged.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
under_sun
Дата 29.3.2011, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можешь расширить ObservableCollection, добавив туда, например, метод AddRange. Вот пример.
--------------------
TMTOWTDI
PM MAIL ICQ   Вверх
Kefir
Дата 29.3.2011, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



-Mikle- прав и не ошибается. В общем тут есть минусы когда столько раз вызывается эта штука (к примеру если коллекцию слушает не только контрол), а так - живите пока спокойно - интерфейс обновится только потом и один раз. А вот если надумаете делать заполнение коллекции в отдельном потоке - тогда в любом случае придется наследовать ObservableCollection ибо он не thread-safe. Так заодно и тихий AddRange сделаете (тихий в смысле что не кричит о каждом добавлении, а в конце вызывает ресет коллекции).
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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