Преимущества в основном в два раза:
Во-первых, свойство зависимости создается только тогда, когда оно используется, это означает, что класс TextBox может быть очень эффективным, с небольшим объемом памяти, поскольку он имеет минимальное количество реальных свойств, занимающих пространство в куче. Это особенно важно в WPF, где все элементы управления являются просто коллекциями более и более конкретных типов. Если бы каждый из этих внутренних типов объявлял десятки свойств, определяющих поведение и выглядящих, тогда элемент управления высокого уровня, похожий на кнопку, в конечном итоге имел бы размер класса с чем-то на уровне сотен свойств.
Во-вторых, свойства зависимости могут быть связаны с объектом, отличным от типа, для которого они созданы. Это допускает случай, когда элемент управления может установить свойство Grid.Column, которое элемент управления Grid может читать и использовать для макета. Это означает, что у нас нет сотен классов декораторов, предоставляющих крошечные кусочки функциональности, требуемые другими элементами управления. Это означает, что xmal гораздо более интуитивно понятен и удобочитаем.
Отредактировано в соответствии с примером в вашем исправленном вопросе:
Хотя ваше свойство проверки не принесет большой пользы, будучи свойством зависимости (в основном из-за причин во всех ответах до сих пор, я действительно могу видеть только мой комментарий об использовании памяти), и это определенно не Это не выгодно, так как это имеет место в случае свойства Text текстового поля, где вы можете захотеть связать его или изменить его на основе какого-либо другого ввода, я бы все же реализовал его как свойство зависимости. Мои рассуждения об этом просты; Вы не получаете много, но это также ничего не стоит - я никогда не хотел, чтобы я использовал базовое свойство в пользовательском элементе управления, тогда как, когда я впервые начал их писать, я постоянно обновлял свои базовые свойства до зависимостей, потому что хотел некоторые дополнительные функции.
Проще говоря, хотя свойство зависимости сложнее определить, что это нормальное свойство, я бы все равно использовал его в качестве фактического стандарта для элементов управления WPF, если бы не было веской причины поступать иначе. Во многом так же, как свойство является стандартом для классов, хотя поле легче реализовать.