Ключи для автобоксинга -128 до 127. Это указано в JLS ( 5.1.7 ).
Если значение p , помещенное в поле, равно true, false, байт, символ в диапазоне от \ u0000 до \ u007f или int или short число между -128 и 127, затем пусть r1 и r2 - результаты любых двух бокс-преобразований p. Всегда бывает, что r1 == r2.
blockquote>Простое правило запоминания при работе с объектами - использовать .equals, если вы хотите проверить, являются ли эти два объекта «equal», используйте ==, когда вы хотите увидеть, указывают ли они на один и тот же экземпляр.
Ну его в названии. Простой список не сообщает обновлению ui, другими словами «представление не может наблюдать список». Нет никакой странной магии за Databinding. WPF и DataBinding нуждаются в модели данных, чтобы сообщить им, что это «новое» или «это изменено», вы, возможно, уже видели . INotifyPropertyChanged , INotifyCollectionChanged - то же самое, но для коллекций, и List<>
не реализует его, ObservableCollection делает.
ObservableCollection<T>
запускает изменения при каждом изменении элементов коллекции. List<T>
нет. Вот в чем причина.
DataBinding является ленивым. Если вы не сообщите своему мнению, что что-то изменилось, оно не будет обновлять. Под капотами WPF DataBinding регистрирует уведомления об изменениях, так что ваша ViewModel может отображать представление, когда оно изменилось. Он делает это с интерфейсами, такими как INotifyPropertyChanged
и INotifyCollectionChanged
.
ObservableCollection<T>
реализует интерфейс INotifyCollectionChanged
. Этот интерфейс определяет событие CollectionChanged
, которое ваш вид в основном прикрепляет к своему собственному обработчику событий. Этот обработчик обновит представление, когда событие будет собрано коллекцией.
Поскольку List не реализует INotifyCollectionChanged
Поскольку обновление привязки данных не является чем-то вроде магии, существует несколько требований к правильной работе привязки данных. Если у вас есть одно свойство для привязки к этому свойству, должно быть либо свойство зависимости, либо его родительский класс должен реализовать интерфейс INotifyPropertyChanged, чтобы уведомить систему привязки wpf об изменениях значения свойства. Для коллекции существует механизм simelar: он должен реализовать INotifyPropertyChanged, чтобы сообщить системе привязки wpf об удаленных / перемещенных / добавленных элементах.
Подробнее см. Здесь: http://msdn.microsoft .com / EN-US / библиотека / system.collections.specialized.inotifycollectionchanged.aspx