Вход на сайт
Заморочка интересная с WPF binding
1981 просмотров
Перейти к просмотру всей ветки
в ответ moose 02.12.20 17:23, Последний раз изменено 04.12.20 10:33 (MrSanders)
private Person _person = new Person ("Name0", 10); public Person person { get { return _person; }} ... _person.Age++; OnPropertyChanged ("person"); ...
, то тичего не произойдет.
Аболютно верно. Правильное поведение.
а так - другое дело
_person = new Person (_person.Name, _person.Age+1); OnPropertyChanged ("person");
И снова совершенно верно. Правильное поведение. В первом примере значение поля "person" не изменилось, как указывало оно на что-то вроде 0x2376894A, так и продолжило на него указывать.
Во втором случае значение "person" изменилось. Новый объект, новый адрес. Даже на такое среагирует (возраст не меняем):
_person = new Person (_person.Name, _person.Age);
Хотя с точки зрения банальной эрудиции как раз сейчас-то у нас в проперти "person" ничего не изменилось.
Похоже на разницу в == и equals()