What are resources in WPF ?


Resources are objects referred in WPF XAML. In C# code when we create an object we do the
following three steps :-

using CustomerNameSpace; // import the namespace.
Customer obj = new Customer(); // Create object of the class
Textbox1.text = obj.CustomerCode; // Bind the object with UI elements
WPF Resources

WPF Resources

So even in WPF XAML to define resources which are nothing but objects we need to the above
3 steps :-

  • Import namespace where the class resides: – To define namespace we need to use the “xmlns” attribute as shown in the below XAML code.
<Window x:Class="LearnWpfResources.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:custns="clr-namespace:LearnWpfResources"
Title="MainWindow" Height="350" Width="525">
  • Create object of the class :- To create an object of the class in XAML we need to create a
    resource by using the resource tag as the below code. You can the object name is
    ‘custobj”.
<Window.Resources>
<custns:Customer x:Key="custobj"/>
</Window.Resources>

The above code you can map to something like this in C#

Customer custobj = new Customer();
  • Bind the object with UI objects :- Once the object is created we can then bind them using
    bindings like one way , two way.
<TextBox Text="{Binding CustomerCode, Mode=TwoWay, Source={StaticResource
custobj}}" />