Access codebehind variable in XAML

Murat picture Murat · Mar 20, 2009 · Viewed 54.9k times · Source

How can I access the public variable which in Sample.xaml.cs file like asp.net <%=VariableName%>?

Answer

Robert Macnee picture Robert Macnee · Mar 20, 2009

There are a few ways to do this.

  • Add your variable as a resource from codebehind:

    myWindow.Resources.Add("myResourceKey", myVariable);
    

    Then you can access it from XAML:

    <TextBlock Text="{StaticResource myResourceKey}"/>
    

    If you have to add it after the XAML gets parsed, you can use a DynamicResource above instead of StaticResource.

  • Make the variable a property of something in your XAML. Usually this works through the DataContext:

    myWindow.DataContext = myVariable;
    

    or

    myWindow.MyProperty = myVariable;
    

    After this, anything in your XAML can access it through a Binding:

    <TextBlock Text="{Binding Path=PropertyOfMyVariable}"/>
    

    or

    <TextBlock Text="{Binding ElementName=myWindow, Path=MyProperty}"/>