Как работает binding к свойству свойства зависимости?
Здравствуйте!
Только недавно начал работать с WPF и возник вопрос, ответ на который не смог найти в учебниках.
У меня есть контрол, который позволяет задать набор свойств одного объекта. Как я читал в учебниках, чтобы двусторонняя связь работала, необходимо, чтобы свойства этого объекта были свойствами зависимости, а в xaml надо просто использовать расширение разметки для связи с этими свойствами. Но я сделал немного по другому, я объявил весь объект свойством зависимости. Я не знаю почему, но это работает. Когда я изменяю какое-либо из свойств этого объекта в интерфейсе - система понимает это и обновляет представление. Т.е. ещё раз:
1. Есть UserControl. В нём хранится свойство зависимости, у которого тип - класс A.
2. В этом контроле, в XAML коде я к текстбоксам привязываю свойства класса A.
3. Для проверки, в контроле добавляю лэйбл, который отображает значение одного из свойств.
4. Когда я изменяю значение в текстбоксе - лейбл тоже обновляется.
Вопрос: Как система узнаёт, что я изменил свойство, которое не является свойством зависимости?
INotyfyPropertyChanged, грубо говоря необходимо реализовать этот интерфейс в объекте привязки, при изменении свойств необходимо вызывать событие PropertyChangedEventHandler, которое уведомляет свойство, к которому идет привязка о изменении объекта привязки. DependencyProperty реализует этот интерфейс. Одним словом, если мы пишем так