На самом деле есть некоторые недостатки:
- Создание свойства Dependency является более многословным, чем свойство с частным полем.
Когда вы используете свойство Dependency, вашеданные хранятся внутри словаря.Это имеет некоторые последствия для производительности: поиск доступа выполняется во время выполнения, также выполняется преобразование, и бокс / распаковка будут происходить, потому что все значения свойств зависимостей хранятся в виде объектов.Кроме того, все эти возможности предоставляются по цене (цене исполнения), которую вы будете платить за каждый доступ (чтение или запись).Событие будет инициировано (как PropertyChanged), проверка будет выполнена в соответствии с вашей конфигурацией DP ...
Ваш класс должен наследовать от DependencyObject
Это цена, которую я готов заплатить, когда понадобятся эти возможности.Но они не нужны во многих случаях => Используйте DP, когда это уместно, классическое личное поле в другом месте.
В некоторых случаях вы будете сожалеть о том, что свойство не является связываемым: когда это произойдет, заменитеполе с реализацией ДП под капотом.