Inotifypropertychanged должно быть реализовано для всего, что вы связываете, и вы хотите уведомить об изменении свойства.Вам не всегда нужно это уведомление.Например.Вы редактируете запись, вы вносите изменения.Может быть, это все, что вы делаете с этими данными, и единственное связанное поле - это то, в которое вы только что ввели.Это означает, что вы можете просто связать свойство dto простым get и set.Хотя - это должно быть представлено из модели представления, которая реализует inpc, потому что есть очень тонкая утечка памяти, ожидающая, чтобы вас поймать иначе.
Вернемся к нашему воображаемому приложению.Почему бы нам не захотеть связываться напрямую с сущностью или объектом dto?
Как насчет того, когда вы пытаетесь сохранить эти изменения.Проверка не пройдена.Но вы изменили этот объект - эти новые значения являются непослушными.Пользователь «вынужден» их исправить, или вы как-то отменили свои изменения.Как вы их обратно?Вы редактируете некоторые dto?Потому что ваш пользователь только что сломал эти данные.Если у вас есть какая-то коллекция данных, кэшированных где-то, вы меняете одну из них напрямую?
Очевидно, вы могли бы снова перечитать эти данные из базы данных.И снова, если вы не позволите им редактировать это dto, вам не нужно этого делать.
Я обычно копирую данные из dto в модель представления и работаю в этом.Я использую подпрограмму копирования свойств на основе отражений, которая идентифицировала общие свойства между двумя типами.Я проверяю эту модель представления, когда каждое свойство передается в виртуальную машину и весь объект на коммит.Его значения копируются в dto и отправляются обратно в хранилище или в метод UoW update.