So as I was scouring the web for the best way to access a parent data context from within an ItemsControl Item Template. I found this fantastic cheat sheet for WPF binding. Of course it didn’t have exactly what I was looking for but it is a great reference.

<Button 
    Content="Move Up"
    Command="{Binding   RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}, 
                        Path=DataContext.MyCommand}"
    CommandParameter="{Binding}"
    />

The above XAML lives within a Item Template and accesses the DataContext from the parent element.

WPF Binding CheatSheet v1.1

Find the latest version at go.nbdtech.com?94E138EA

Part I – Common Examples

Basic Binding

  • {Binding}: Bind to current DataContext.
  • {Binding Name}: Bind to Name property of current DataContext.
  • {Binding Name.Length}: Bind to Length property in Name.
  • {Binding ElementName=SomeTextBox, Path=Text}: Bind to Text of SomeTextBox.

XML Binding

  • {Binding Source={StaticResource BooksData} XPath=/books/book}: Bind XPath query.
  • {Binding XPath=@name}: Bind XPath query to XML node in DataContext.

Relative Source Binding

  • {Binding RelativeSource={RelativeSource Self}}: Bind to target element.
  • {Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=Title}: Bind to parent window’s title.

Collection Current Item Binding

  • {Binding /}: Bind to current item in DataContext.
  • {Binding AllItems/Name}: Bind Name of current item in AllItems.

Part II – Binding Properties Overview

Property Description
BindingGroupName Used for validating multiple bindings together.
BindsDirectlyToSource Bind to the data source provider object.
Converter Converter for data transformation.
ElementName Binds to element by name.
Mode Binding direction (e.g., TwoWay, OneWay).
Path Source property path.
RelativeSource Sets source relative to target element.
Source Explicit object as source.
StringFormat Format string for display.
UpdateSourceTrigger Controls update timing of source.
ValidatesOnDataErrors Use IDataErrorInfo for validation.

Internationalization Fix: Use FrameworkElement.LanguageProperty.OverrideMetadata to respect user-selected culture settings.

For detailed examples, please refer to the full PDF here.