2015-10-06 2 views
-1

У меня вопрос о событиях внутри классов.Свойство Изменено событие в классе

У меня есть целый набор свойств внутри моего класса и вы хотите, чтобы событие было запущено при изменении свойства. Я хочу использовать измененные свойства для вычисления результата.

Одним из возможных вариантов может быть добавление вызова к каждому набору свойств, но это - для моего понимания - тоже q'n'd.

ответ

3

Общий подход, чтобы понять это было бы реализовать INotitfyPropertyChanged интерфейса и поднять PropertyChanged события в каждом методе settter для свойств, где это необходимо.

Затем вы реализуете обработчик событий, который реагирует на событие и выполняет необходимые операции.

https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx

+0

Thanks K.J. Но (насколько я вижу) это не требует вызова события PropertyChanged в каждом отдельном свойстве? Я искал какой-то общий способ, не требуя этого. Или я ошибаюсь? – AllDayPiano

+0

Как я писал: это был бы общий подход, поскольку вам редко нужно внедрять уведомление о свойстве EVRY, но только выборочный выбор. Здесь https://github.com/Fody/PropertyChanged вы найдете проект, который использует инъекцию кода во время компиляции с использованием атрибута уровня класса. Я еще не проверил его, но это, по-видимому, хороший подход, предотвращающий загрязнение ваших свойств всеми звонками: –

+0

Хорошо, но не то, что я ожидал, но кое-что, на что я посмотрю. Большое спасибо :) – AllDayPiano

Смежные вопросы