Чтобы создать DependencyProperty, добавьте статическое поле типа DepdencyProperty к вашему типу и вызовите DependencyProperty.Register (), чтобы создать экземпляр свойства зависимостей. Имя DependendyProperty всегда должно заканчиваться на ... Свойство. Это соглашение об именах в WPF.
Чтобы сделать его доступным как обычное свойство .NET, вам нужно добавить оболочку свойства. Эта оболочка делает только внутреннее получение и установку значения с помощью методов GetValue () и SetValue (), унаследованных от DependencyObject, и передачи DependencyProperty в качестве ключа.
Не добавляйте никакой логики к этим свойствам, потому что они вызываются только когда вы устанавливаете свойство из кода. Если вы устанавливаете свойство из XAML, метод SetValue () вызывается напрямую.
Каждый DependencyProperty предоставляет обратные вызовы для уведомления об изменениях, приведения значений и проверки. Эти обратные вызовы зарегистрированы в свойстве зависимости.
источник: http://www.wpftutorial.net/DependencyProperties.html