Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Заморочка интересная с WPF binding

04.12.20 10:32
Re: Заморочка интересная с WPF binding
 
MrSanders коренной житель
в ответ 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()

 

Перейти на