Как класс может уведомить кого-то, что его данные были изменены? - PullRequest
3 голосов
/ 28 августа 2011

Допустим, существует класс Person, который содержит некоторые атрибуты и некоторые другие классы Address и т. Д. (Я просто привожу пример класса {class {data}}) *

Экземпляр этого десериализуется и загружается в пользовательский интерфейс. Используемый может изменить данные (имя, адрес или что-то).

Если экземпляр является источником данных в пользовательском интерфейсе (в каждом элементе управления), как я могу узнать, изменились ли данные, чтобы уведомить пользователя о сохранении перед выходом?

Ответы [ 2 ]

5 голосов
/ 28 августа 2011

Вы должны реализовать интерфейс INotifyPropertyChanged, который в основном предоставляет событие, которое Person должно вызывать при изменении свойства.

В связанной документации приведен пример с классом DemoCustomer, который, скорее всего, легко перевести в ваш класс Person.

3 голосов
/ 28 августа 2011

Чтобы избежать раздражающего кода для каждого свойства каждого класса, который вы делали и будете делать, вы можете использовать одну из AOP платформ.Это один из лучших доступных на рынке: PostSharp .И есть также бесплатная версия, которая является хорошей новостью.(кстати, следите за лицензированием, если вы собираетесь использовать его на своей работе)

Здесь вы можете найти пример того, как использовать его точно для инъекции NotifyPropertyChanged

http://www.sharpcrafters.com/solutions#ui

Надеюсь, это поможет ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...