@hudsonb Your case may need something special, but if it doesn't
1. Limit -- or even prevent -- UI controls from talking to other UI controls. It's an anti-pattern to use UI controls as a means to access data. Factor out the shared item and make it readily available. That can lead to a strong second-order refactor when groups of the properties start to colalesce.
2. Don't reinvent CSS. If you need a hierarchical way to style ranges of nodes, look for CSS rules rather than walking an object graph.