How to access a control from a ContextMenu menuitem via the visual tree?

This is happening because DataContext=”{Binding PlacementTarget,… binding would set the button as MenuItems DataContext but that won’t add the ContextMenu to the VisualTree of your window and that’s why ElementName binding’s won’t work. A simple workaround to use ElementName bindings is to add this in your Window/UserControl’s code-behind: NameScope.SetNameScope(contextMenuName, NameScope.GetNameScope(this)); Another solution is to do … Read more

How do I use WPF bindings with RelativeSource?

If you want to bind to another property on the object: {Binding Path=PathToProperty, RelativeSource={RelativeSource Self}} If you want to get a property on an ancestor: {Binding Path=PathToProperty, RelativeSource={RelativeSource AncestorType={x:Type typeOfAncestor}}} If you want to get a property on the templated parent (so you can do 2 way bindings in a ControlTemplate) {Binding Path=PathToProperty, RelativeSource={RelativeSource TemplatedParent}} … Read more