I have the following XAML:
...
I'm guessing that the writer of Chart, when deriving from FrameworkElement or whatever, failed to realize that they needed to add any child elements to the logical tree either manually or through an override. You don't get that for free when deriving.
Breaking the logical tree breaks the ability of children to bind by ElementName.
If you are the author of the Chart object, you can see this related question and answer.
You might not have a namescope where you try to bind, you could try to replace the ElementName
construct with Source={x:Reference DisplayMarkers}
.
For a workaround for potential cyclical dependency errors see: https://stackoverflow.com/a/6858917/546730
For other readers, another possible cause is using a UserControl instead of a custom control for what's in the role of vf:Chart
, above. I wrote a split button (in the role of the chart) and changing it from a UserControl to a custom control got my ElementName binding working.