Почему этот список не привязан к этому списку? [Дубликат]

Ключи для автобоксинга -128 до 127. Это указано в JLS ( 5.1.7 ).

Если значение p , помещенное в поле, равно true, false, байт, символ в диапазоне от \ u0000 до \ u007f или int или short число между -128 и 127, затем пусть r1 и r2 - результаты любых двух бокс-преобразований p. Всегда бывает, что r1 == r2.

blockquote>

Простое правило запоминания при работе с объектами - использовать .equals, если вы хотите проверить, являются ли эти два объекта «equal», используйте ==, когда вы хотите увидеть, указывают ли они на один и тот же экземпляр.

2
задан David Bekham 15 May 2012 в 10:56
поделиться

4 ответа

Ну его в названии. Простой список не сообщает обновлению ui, другими словами «представление не может наблюдать список». Нет никакой странной магии за Databinding. WPF и DataBinding нуждаются в модели данных, чтобы сообщить им, что это «новое» или «это изменено», вы, возможно, уже видели . INotifyPropertyChanged , INotifyCollectionChanged - то же самое, но для коллекций, и List<> не реализует его, ObservableCollection делает.

4
ответ дан dowhilefor 19 August 2018 в 04:40
поделиться

ObservableCollection<T> запускает изменения при каждом изменении элементов коллекции. List<T> нет. Вот в чем причина.

DataBinding является ленивым. Если вы не сообщите своему мнению, что что-то изменилось, оно не будет обновлять. Под капотами WPF DataBinding регистрирует уведомления об изменениях, так что ваша ViewModel может отображать представление, когда оно изменилось. Он делает это с интерфейсами, такими как INotifyPropertyChanged и INotifyCollectionChanged.

ObservableCollection<T> реализует интерфейс INotifyCollectionChanged . Этот интерфейс определяет событие CollectionChanged , которое ваш вид в основном прикрепляет к своему собственному обработчику событий. Этот обработчик обновит представление, когда событие будет собрано коллекцией.

1
ответ дан Botz3000 19 August 2018 в 04:40
поделиться

Поскольку List не реализует INotifyCollectionChanged

1
ответ дан Klaus78 19 August 2018 в 04:40
поделиться

Поскольку обновление привязки данных не является чем-то вроде магии, существует несколько требований к правильной работе привязки данных. Если у вас есть одно свойство для привязки к этому свойству, должно быть либо свойство зависимости, либо его родительский класс должен реализовать интерфейс INotifyPropertyChanged, чтобы уведомить систему привязки wpf об изменениях значения свойства. Для коллекции существует механизм simelar: он должен реализовать INotifyPropertyChanged, чтобы сообщить системе привязки wpf об удаленных / перемещенных / добавленных элементах.

Подробнее см. Здесь: http://msdn.microsoft .com / EN-US / библиотека / system.collections.specialized.inotifycollectionchanged.aspx

1
ответ дан Torben Schramme 19 August 2018 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: