| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Как обновляется ListView ? |
| Автор: Stas123 16.11.2011, 10:39 |
| У меня в ObservableCollection хранятся объекты. Довольно часто свойства этих объектов изменяются, но не происходит обновления изображения в ListView. Как сделать так, чтобы при изменении свойств объектов происходила перерисовка их отображения в ListView ? Или может быть лучше использовать другой элемент для отображения? |
| Автор: Stas123 18.11.2011, 15:50 | ||
ObservableCollection присоединина к ListView таким образом
Скажите, что вызвает перерисовку списка и как это перерисовку можно вызвать вручную? |
| Автор: Gvozdin 18.11.2011, 22:45 |
| Объекты должны реализовывать INotifyPropertyChanged |
| Автор: Stas123 22.11.2011, 11:31 | ||
| Gvozdin, добавил реализацию INotifyPropertyChanged в класс, но это не помогло. Событие об изменении коллекции происходит только при добавлении/удалении элементов. Такой код молчит при изменении свойств объекта.
|
| Автор: RastaDja 22.11.2011, 11:43 | ||
|
| Автор: Stas123 22.11.2011, 11:53 | ||
RastaDja, Да, у меня почти так и сделано.
|
| Автор: RastaDja 22.11.2011, 12:00 |
А твои свойства изменяются с наружи, или внутри класса тоже? Если внутри тоже, тогда вставь NotifyPropertyChanged("Name") везде, где есть изменение. |
| Автор: Stas123 22.11.2011, 12:02 |
| Может быть на это событие PropertyChanged нужно где-то подписаться? |
| Автор: Gvozdin 22.11.2011, 12:02 | ||||
Ну конечно CollectionChanged молчит, оно реагирует только на изменения самой коллекции. Объект из свойства Room элемента вашей коллекции точно поддерживает INotifyPropertyChanged? Попробуйте с текст боксом: <TextBox Text="{Binding Path=Name}" DataContext="{Binding ElementName=securitiesWindow, Path=House[0]}"/> И реализацию лучше сделайте как показал RastaDja. Если хотите более детальных ответов, то сделайте демо проект с вашей проблемой. |
| Автор: Stas123 22.11.2011, 12:17 | ||||
Своиство изменяется изнутри и только при наступлении события, private void OnChange(string name) - это обработчик события.
Да. Сейчас отправлю демо. |
| Автор: Stas123 22.11.2011, 14:49 |
| разобрался, всем спасибо. |