Вы правы, что привязки связаны с визуальным деревом: они связаны с подключением элементов пользовательского интерфейса к элементам данных. Поэтому, если вы хотите использовать привязку для этого, вам действительно придется установить ее на элемент фиктивного фреймворка.
Однако, если WPF может наблюдать за свойством, то вы тоже можете. WPF просто использует интерфейс INotifyPropertyChanged объекта контекста данных. Поэтому вместо того, чтобы устанавливать привязку, вы можете просто привести объект, который вы хотите наблюдать, к INotifyPropertyChanged и подписаться на его событие PropertyChanged. Внутренне это все, что WPF делает в любом случае.
(Если вы обеспокоены проблемами жизненного цикла, WPF предоставляет PropertyChangedEventManager, который использует слабые ссылки. Вызовите PropertyChangedEventManager(dataObject, listenerObject, "WhateverPropertyYouWant")
, где listenerObject - это объект, для которого вы хотите получать уведомления об изменениях.)