Короче говоря, мы создаем присоединенное свойство, которое будет применяться только к FrameworkElement
или одному из его подклассов. Мы хотим заблокировать набор, если он применяется к чему-то, чего нет.
Теперь мы не можем использовать ValidateValueCallback
, поскольку ему передается только значение свойства, а не то, к чему вы прикрепляете свойство.
Точно так же мы не можем использовать PropertyChangedCallback
, потому что значение уже установлено в этой точке, а NewValue
доступно только для чтения, и по какой-то причине мы не можем заставить ClearValue
«застрять» внутри.
Итак... в любом случае делать то, что мы хотим?