![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
Stas123 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
У меня в ObservableCollection хранятся объекты.
Довольно часто свойства этих объектов изменяются, но не происходит обновления изображения в ListView. Как сделать так, чтобы при изменении свойств объектов происходила перерисовка их отображения в ListView ? Или может быть лучше использовать другой элемент для отображения? |
|||
|
||||
Stas123 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
ObservableCollection присоединина к ListView таким образом
Скажите, что вызвает перерисовку списка и как это перерисовку можно вызвать вручную? |
|||
|
||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Объекты должны реализовывать INotifyPropertyChanged
--------------------
http://gvozdin.ru |
|||
|
||||
Stas123 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Gvozdin, добавил реализацию INotifyPropertyChanged в класс, но это не помогло.
Событие об изменении коллекции происходит только при добавлении/удалении элементов. Такой код молчит при изменении свойств объекта.
|
|||
|
||||
RastaDja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 1.11.2010 Репутация: нет Всего: 5 |
Это сообщение отредактировал(а) RastaDja - 22.11.2011, 11:45 -------------------- The more closely you look at one thing, the less closely can you see something else. |
|||
|
||||
Stas123 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
RastaDja, Да, у меня почти так и сделано.
|
|||
|
||||
RastaDja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 337 Регистрация: 1.11.2010 Репутация: нет Всего: 5 |
А твои свойства изменяются с наружи, или внутри класса тоже? Если внутри тоже, тогда вставь NotifyPropertyChanged("Name") везде, где есть изменение. -------------------- The more closely you look at one thing, the less closely can you see something else. |
|||
|
||||
Stas123 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Может быть на это событие PropertyChanged нужно где-то подписаться?
|
|||
|
||||
Gvozdin |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Ну конечно CollectionChanged молчит, оно реагирует только на изменения самой коллекции. Объект из свойства Room элемента вашей коллекции точно поддерживает INotifyPropertyChanged? Попробуйте с текст боксом: <TextBox Text="{Binding Path=Name}" DataContext="{Binding ElementName=securitiesWindow, Path=House[0]}"/> И реализацию лучше сделайте как показал RastaDja. Если хотите более детальных ответов, то сделайте демо проект с вашей проблемой. --------------------
http://gvozdin.ru |
||||
|
|||||
Stas123 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
Своиство изменяется изнутри и только при наступлении события, private void OnChange(string name) - это обработчик события.
Да. Сейчас отправлю демо. Это сообщение отредактировал(а) Stas123 - 22.11.2011, 12:17 |
||||
|
|||||
Stas123 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 18.11.2009 Репутация: нет Всего: нет |
разобрался, всем спасибо.
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |