Bindings
This is an overview of different binding methods. WPF and Binding can be very confusing for new users. This list will help you for the beginning. I’ll update the list regularly. So if you miss something, or have a binding method you want to have here, just leave a comment!
Bind to Property
Binds to a property of another XAML object.
Background="{Binding ElementName=userMenu,Path=Background}"
Example
<MenuItem x:Name="userMenu" DockPanel.Dock="Right" Background="#FF444444" Foreground="White" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="48" Header="Username" > <MenuItem x:Name="userMenuLogout" Background="{Binding ElementName=userMenu,Path=Background}" Foreground="{Binding ElementName=userMenu,Path=Foreground}" Header="Abmelden" ></MenuItem> </MenuItem>
Bind to Environment Properties
Header="{x:Static s:Environment.UserName}"
This requieres following namespace declaration.
xmlns:s="clr-namespace:System;assembly=mscorlib"
Bind to Properties.Settings.Default
If you want to bind to a Settings property, you can do it this way:
Requirements
First, you need to add the properties namespace to your XMAL file.
xmlns:properties="clr-namespace:YOUR_NAMESPACE.Properties"
Implementation
In order to access a propertie, insert the following binding code to your XMAL-object attribute, like here, for the title.
Title="{Binding Source={x:Static properties:Settings.Default}, Path=NAME_OF_PROPERTY}"
Bind to Self Property
Content="{Binding RelativeSource={RelativeSource Self}, Path=Text}"
Bind to Ancestor
If you want to bind to a property of the ancestor, implement the binding as following:
{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window, AncestorLevel=1}}