<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" version="2.0">
   <channel>
      <title>Deyan's Blogs</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=gjfPYak83RG3kxX9MVrX_Q</link>
      <pubDate>Sun, 12 Jul 2009 05:19:14 -0700</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/varchev" type="application/rss+xml" /><item>
         <title>Tip of the day - Modal Dialogs</title>
         <link>http://blogs.telerik.com/deyanvarchev/posts/08-12-02/tip_of_the_day_-_modal_dialogs.aspx</link>
         <description>&lt;p&gt;When we have a running application and we want to show a modal dialog window what we generally do is more or less the following:&lt;/p&gt; &lt;div style="font-family:consolas;background:#e3d5c1;color:black;font-size:10pt;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;window&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;MyDialogWindow&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#010001;"&gt;window&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;ShowDialog&lt;/span&gt;();&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Doing that works great - the dialog window shows and is modal. It has just one tiny defect - if you switch from the running application to another one (i. e. using Alt + Tab) and then come back to the running app the modal dialog window is not showing and the app is inactive. &lt;/p&gt; &lt;p&gt;The solution - just assign the parent window to the Owner property of your modal dialog window :&lt;/p&gt; &lt;div style="font-family:consolas;background:#e3d5c1;color:black;font-size:10pt;"&gt; &lt;p style="margin:0px;"&gt; &lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;window&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;MyDialogWindow&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="color:#010001;"&gt;window&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Owner&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#400080;"&gt;this&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;"&gt; &lt;span style="color:#010001;"&gt;window&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;ShowDialog&lt;/span&gt;();&lt;/p&gt; &lt;/div&gt;</description>
         <author>Deyan Varchev</author>
         <guid isPermaLink="false">c0231d2b-ef24-4de8-8343-8f7bc7d7db05</guid>
         <pubDate>Mon, 01 Dec 2008 19:25:01 -0800</pubDate>
      </item>
      <item>
         <title>WPF Data Binding: Unraveling data templates</title>
         <link>http://blogs.telerik.com/deyanvarchev/posts/08-06-17/wpf_data_binding_unraveling_data_templates.aspx</link>
         <description>&lt;p&gt;Data binding in WPF in general and particularly working with data templates tends to be quite tricky some times. Here I'll present you some more advanced tips for dealing with data templates. &lt;/p&gt; &lt;p&gt;To start with, I want to refer to &lt;a rel="nofollow" target="_blank" href="http://www.codegod.de/WebAppCodeGod/wpf-databinding-styles-and-datatemplates-AID406.aspx"&gt;an article&lt;/a&gt; I read a while ago. It is about the basics of data templates and I want to use it as a starting point and a foundation to build on. If you are just starting to work with WPF or you have never met with data templates, please read it first to get acquainted with the idea. I'll use &lt;a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.aspx"&gt;ItemsControl&lt;/a&gt; for my samples - however, you can apply the ideas with any control supporting data templates.&lt;/p&gt; &lt;p&gt;In short, you can use data templates to define how some item's "look and feel". The goodie of data templates is that you can define different template for every different data object you want to visualize. Let's say that in addition to the Person class from the sample, you have also Boy and Girl classes (they may or may not inherit from the person class). &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 3&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;class&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Boy&lt;/span&gt;: &lt;span style="color:#305fb6;"&gt;Person&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 4&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 5&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 3&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;class&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Girl&lt;/span&gt;: &lt;span style="color:#305fb6;"&gt;Person&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 4&lt;/span&gt; { &lt;/p&gt; &lt;p style="margin:0px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 5&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Now lets define data templates and styles for those types too:&lt;/p&gt; &lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 23&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="GirlBorderStyle"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; TargetType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Border"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 24&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Background"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="LightPink" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 25&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderBrush"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 26&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderThickness"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 27&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="CornerRadius"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="8" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 28&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Margin"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2,4" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 29&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 30&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BoyBorderStyle"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; TargetType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Border"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 31&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Background"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="LightBlue" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 32&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderBrush"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 33&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderThickness"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 34&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="CornerRadius"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="8" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 35&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Margin"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2,4" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 36&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 37&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Girl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 38&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 39&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PersonImageConverter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="imageConverter" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 40&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 41&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="girlBorder"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; GirlBorderStyle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 42&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 43&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Horizontal"&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 44&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 45&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Path&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=ImageRef,&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 46&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Converter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; imageConverter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 47&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 48&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DropShadowBitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 49&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 50&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 51&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personName"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Padding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="15,15"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 52&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 53&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 54&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 55&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 56&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Boy&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 57&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 58&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PersonImageConverter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="imageConverter" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 59&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 60&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="boyBorder"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BoyBorderStyle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 61&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 62&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Horizontal"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 63&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Path&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=ImageRef,&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Converter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; imageConverter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 64&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 65&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DropShadowBitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 66&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 67&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 68&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personName"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Padding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="15,15"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 69&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 70&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 71&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 72&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Good! Now that we have object classes and templates for them, lets make some new objects :). We will change the &lt;strong&gt;CreatePersons()&lt;/strong&gt; method in the following way:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 36&lt;/span&gt; &lt;span style="color:#400080;"&gt;private&lt;/span&gt; &lt;span style="color:#400080;"&gt;static&lt;/span&gt; &lt;span style="color:#010001;"&gt;System&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Collections&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt; &lt;span style="color:#010001;"&gt;CreatePersons&lt;/span&gt;()&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 37&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 38&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;List&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#305fb6;"&gt;Person&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#010001;"&gt;persons&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;List&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#305fb6;"&gt;Person&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 39&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 40&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Girl&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 41&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 42&lt;/span&gt; &lt;span style="color:#010001;"&gt;Name&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt;"Jane"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 43&lt;/span&gt; &lt;span style="color:#010001;"&gt;ImageRef&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt;"P_1.jpg"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 44&lt;/span&gt; &lt;span style="color:#010001;"&gt;Age&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#259241;"&gt;12&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 45&lt;/span&gt; },&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 46&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Boy&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 47&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 48&lt;/span&gt; &lt;span style="color:#010001;"&gt;Name&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt;"Josh"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 49&lt;/span&gt; &lt;span style="color:#010001;"&gt;ImageRef&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt;"P_2.jpg"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 50&lt;/span&gt; &lt;span style="color:#010001;"&gt;Age&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#259241;"&gt;25&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 51&lt;/span&gt; },&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 52&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Person&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 53&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 54&lt;/span&gt; &lt;span style="color:#010001;"&gt;Name&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt;"Matthias"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 55&lt;/span&gt; &lt;span style="color:#010001;"&gt;ImageRef&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt;"P_3.jpg"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 56&lt;/span&gt; &lt;span style="color:#010001;"&gt;Age&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#259241;"&gt;62&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 57&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 58&lt;/span&gt; };&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 59&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 60&lt;/span&gt; &lt;span style="color:#400080;"&gt;return&lt;/span&gt; &lt;span style="color:#010001;"&gt;persons&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 61&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;And here we go - lets run the app! Now instead of having 3 items with the same look we have 3 different looks:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_4_1.sflb"&gt;&lt;img width="404" height="150" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_thumb_1_1.sflb" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Cool, ah? But that's too simple. Can we get it to do more complex stuff? Sure! How about the case in which you don't care about different object types and want define different data templates only for the base type. You don't have Boys and Girls but only Persons. However, those persons have additional property Age, and you what to have a different data template for people that are old and for those that are not (this might be an over simplified example but still will give you the right idea). To be more specific - everyone that is over 59 will be considered as old (I hope no one gets offended, just giving an example ;) ). This time we have the following data templates:&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 6&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="PersonBorderStyle"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; TargetType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Border"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 7&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Background"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="LightPink" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 8&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderBrush"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 9&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderThickness"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 10&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="CornerRadius"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="8" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 11&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Margin"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2,4" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 12&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 13&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="OldPersonBorderStyle"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; TargetType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Border"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 14&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Background"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Beige" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 15&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderBrush"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 16&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderThickness"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 17&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="CornerRadius"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="8" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 18&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Margin"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2,4" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 19&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 20&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="defaultPerson"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Person&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 21&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 22&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PersonImageConverter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="imageConverter" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 23&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 24&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personsBorder"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; PersonBorderStyle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 25&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 26&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Horizontal"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 27&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Path&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=ImageRef,&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Converter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; imageConverter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}}"&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 28&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 29&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DropShadowBitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 30&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 31&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 32&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personName"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Padding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="15,15"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 33&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 34&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 35&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 36&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 37&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="oldPerson"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Person&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 38&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 39&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PersonImageConverter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="imageConverter" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 40&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 41&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personsBorder"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; OldPersonBorderStyle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 42&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 43&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Horizontal"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 44&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Path&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=ImageRef,&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Converter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; imageConverter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 45&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 46&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DropShadowBitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 47&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 48&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 49&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personName"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Padding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="15,15"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 50&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 51&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 52&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 53&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Notice that now each data template has &lt;strong&gt;x:Key &lt;/strong&gt;attribute defined. The reason for this is that now we have 2 data templates for the same data type - &lt;strong&gt;Person&lt;/strong&gt;. In order for both of them to exist and work correctly you need to have a different key defined for them both.&lt;/p&gt; &lt;p&gt;In order to have the right template selected for the right person, we need the magic of &lt;strong&gt;&lt;a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector.aspx"&gt;data template selectors&lt;/a&gt;&lt;/strong&gt;. The essence of data template selectors is that if you have one, it will be used to select the correct template. I will define my own data template selector that will incorporate the logic I want to apply. Here is how that class looks like:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 1&lt;/span&gt; &lt;span style="color:#400080;"&gt;using&lt;/span&gt; &lt;span style="color:#010001;"&gt;System&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Windows&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 2&lt;/span&gt; &lt;span style="color:#400080;"&gt;using&lt;/span&gt; &lt;span style="color:#010001;"&gt;System&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Windows&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Controls&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 3&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 4&lt;/span&gt; &lt;span style="color:#400080;"&gt;namespace&lt;/span&gt; &lt;span style="color:#010001;"&gt;WpfDatabinding_Persons&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 5&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 6&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;class&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;MySelector&lt;/span&gt; : &lt;span style="color:#305fb6;"&gt;DataTemplateSelector&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 7&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 8&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;override&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;DataTemplate&lt;/span&gt; &lt;span style="color:#010001;"&gt;SelectTemplate&lt;/span&gt;(&lt;span style="color:#400080;"&gt;object&lt;/span&gt; &lt;span style="color:#010001;"&gt;item&lt;/span&gt;, &lt;span style="color:#305fb6;"&gt;DependencyObject&lt;/span&gt; &lt;span style="color:#010001;"&gt;container&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 9&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 10&lt;/span&gt; &lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;person&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#010001;"&gt;item&lt;/span&gt; &lt;span style="color:#400080;"&gt;as&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Person&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 11&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;ContentPresenter&lt;/span&gt; &lt;span style="color:#010001;"&gt;presenter&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#010001;"&gt;container&lt;/span&gt; &lt;span style="color:#400080;"&gt;as&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;ContentPresenter&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 12&lt;/span&gt; &lt;span style="color:#400080;"&gt;if&lt;/span&gt;(&lt;span style="color:#010001;"&gt;presenter&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;!=&lt;/span&gt; &lt;span style="color:#400080;"&gt;null&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 13&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 14&lt;/span&gt; &lt;span style="color:#400080;"&gt;if&lt;/span&gt; (&lt;span style="color:#010001;"&gt;person&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;!=&lt;/span&gt; &lt;span style="color:#400080;"&gt;null&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#010001;"&gt;person&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Age&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#259241;"&gt;59&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 15&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 16&lt;/span&gt; &lt;span style="color:#400080;"&gt;return&lt;/span&gt; &lt;span style="color:#010001;"&gt;presenter&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;TryFindResource&lt;/span&gt;(&lt;span style="font-weight:bold;color:#259241;"&gt;"oldPerson"&lt;/span&gt;) &lt;span style="color:#400080;"&gt;as&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;DataTemplate&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 17&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 18&lt;/span&gt; &lt;span style="color:#400080;"&gt;return&lt;/span&gt; &lt;span style="color:#010001;"&gt;presenter&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;TryFindResource&lt;/span&gt;(&lt;span style="font-weight:bold;color:#259241;"&gt;"defaultPerson"&lt;/span&gt;) &lt;span style="color:#400080;"&gt;as&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;DataTemplate&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 19&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 20&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 21&lt;/span&gt; &lt;span style="color:#400080;"&gt;return&lt;/span&gt; &lt;span style="color:#400080;"&gt;base&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;SelectTemplate&lt;/span&gt;(&lt;span style="color:#010001;"&gt;item&lt;/span&gt;,&lt;span style="color:#010001;"&gt;container&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 22&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 23&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 24&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Of course we need to assign this template selector to the &lt;strong&gt;ItemsControl&lt;/strong&gt; we use to display &lt;strong&gt;Person&lt;/strong&gt; objects:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 5&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MySelector&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="mySelector" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt;....&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 33&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ItemsControl&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personItems"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2"&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 34&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Stretch"&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 35&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="10"&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 36&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Center"&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 37&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ItemTemplateSelector&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; mySelector&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 38&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;And voa-la! Run the app and you have the behavior we wanted - Matthias (the old guy) is displayed differently than the other people.&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_6_1.sflb"&gt;&lt;img width="404" height="146" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_thumb_2_1.sflb" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Want more? Sure! Why not!&lt;/p&gt; &lt;p&gt;Let's look what will happen if we have the scenario of changing skins. Generally, this case is handled by loading different &lt;a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.windows.resourcedictionary.aspx"&gt;resource dictionaries&lt;/a&gt; from xaml files. I'll define just two but you can have as much as you want. I add a simple &lt;strong&gt;ComboBox&lt;/strong&gt; to have a way to choose between skins:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 22&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; IsSynchronizedWithCurrentItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="True"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="SkinsComboBox"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="25"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; VerticalAlignment&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Top"&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 23&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;SelectionChanged&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="SkinsComboBox_SelectionChanged" &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 24&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBoxItem&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataContext&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Default.xaml"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; IsSelected&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="True" &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 25&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; Default&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 26&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBoxItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 27&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBoxItem&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataContext&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Fancy.xaml" &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 28&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; Fancy&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 29&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBoxItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 30&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ComboBox&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;And the method that handles the skin change: &lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 63&lt;/span&gt; &lt;span style="color:#400080;"&gt;private&lt;/span&gt; &lt;span style="color:#400080;"&gt;void&lt;/span&gt; &lt;span style="color:#010001;"&gt;SkinsComboBox_SelectionChanged&lt;/span&gt;(&lt;span style="color:#400080;"&gt;object&lt;/span&gt; &lt;span style="color:#010001;"&gt;sender&lt;/span&gt;, &lt;span style="color:#305fb6;"&gt;SelectionChangedEventArgs&lt;/span&gt; &lt;span style="color:#010001;"&gt;e&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 64&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 65&lt;/span&gt; &lt;span style="color:#400080;"&gt;string&lt;/span&gt; &lt;span style="color:#010001;"&gt;resources&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt;"Templates/"&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;+&lt;/span&gt; ((&lt;span style="color:#305fb6;"&gt;ComboBoxItem&lt;/span&gt;) ((&lt;span style="color:#305fb6;"&gt;ComboBox&lt;/span&gt;) &lt;span style="color:#010001;"&gt;sender&lt;/span&gt;)&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;SelectedItem&lt;/span&gt;)&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;DataContext&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 66&lt;/span&gt; &lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;uri&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#010001;"&gt;resources&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;UriKind&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Relative&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 67&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;ResourceDictionary&lt;/span&gt; &lt;span style="color:#010001;"&gt;rd&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Application&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;LoadComponent&lt;/span&gt;(&lt;span style="color:#010001;"&gt;uri&lt;/span&gt;) &lt;span style="color:#400080;"&gt;as&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;ResourceDictionary&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 68&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Application&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Current&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Resources&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#010001;"&gt;rd&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 69&lt;/span&gt; &lt;span style="color:#400080;"&gt;if&lt;/span&gt;(&lt;span style="color:#010001;"&gt;personItems&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;!=&lt;/span&gt; &lt;span style="color:#400080;"&gt;null&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 70&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 71&lt;/span&gt; &lt;span style="color:#010001;"&gt;personItems&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Items&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Refresh&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 72&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 73&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt;I'm calling &lt;strong&gt;Items.Refresh()&lt;/strong&gt; so that item templates are regenerated once the skin is changed (&lt;a rel="nofollow" target="_blank" href="http://drwpf.com/blog/Home/tabid/36/EntryID/18/Default.aspx"&gt;again Dr. WPF helped&lt;/a&gt; ;) ) &lt;/p&gt; &lt;p&gt;The &lt;strong&gt;Fancy.xaml&lt;/strong&gt; defines some more fancy border styles for the templates that I won't bother you with. At the end of the post I'll include a link to the source code of the example, so you will be able to look at it in details. The result is this:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_8_1.sflb"&gt;&lt;img width="404" height="134" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_thumb_3_1.sflb" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Lovely!&lt;/p&gt; &lt;p&gt;How bad can we go? Very bad ! :)&lt;/p&gt; &lt;p&gt;Recently, one very nasty idea came to my mind. Is it possible to make my application work in such a way that it is independent of data template keys? To be more precise - I want to have many data templates for a particular data type and I want each data template to define for exactly what kind of objects it is for. So for our example, I would like data templates to define for which age they are for. In this way I would be able to have 2 data templates in one skin and 3 in another. Thinking on how to implement such kind of functionality the first and probably the worst idea would be to include any details into the data template key. Thus the template selector will extract all data templates for a specified data object (in our case Person), parse the key and extract any details for that template. For example a data template, defined for our example will look like this:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 34&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personTemplate_60"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Person&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt;(Data template for a person object that has Age value over 60). &lt;/p&gt; &lt;p&gt;This looks very lame, doesn't it!&lt;/p&gt; &lt;p&gt;A better approach would be to have our own data template type, which extends the framework's &lt;strong&gt;DataTemplate &lt;/strong&gt;class and has the necessary properties (like Age). If we want to take that approach a template definition would probably look like this:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 34&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local:MyDataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personTemplate"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Age&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="60"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Person&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;I tried this approach. Unfortunately, it did not work. Although it looks very natural and there shouldn't be any problems implementing it, a problem appeared. While from Xaml syntax and OO perspective it is correct, the Xaml (Baml) reader does not think so - an error occurs. Searching deeper I found that the reader recognizes only template types defined by the framework. If you define (inherit from existing) your own, it directly treats it as an object and not template, which results into an error. So, here is the work-around I made to implement what I wanted.&lt;/p&gt; &lt;p&gt;First and foremost I need a method that will extract all resources of a given type from all available into some resource dictionary. Do I hear extension method? Yes, that's it! I created an extension method for the ResourceDictionary class:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 26&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;static&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;List&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#010001;"&gt;T&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#010001;"&gt;GetAllOfType&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#010001;"&gt;T&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#400080;"&gt;this&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;ResourceDictionary&lt;/span&gt; &lt;span style="color:#010001;"&gt;dictionary&lt;/span&gt;) &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 27&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 28&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;List&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#010001;"&gt;T&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#010001;"&gt;result&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#400080;"&gt;new&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;List&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#010001;"&gt;T&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 29&lt;/span&gt; &lt;span style="color:#400080;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;resource&lt;/span&gt; &lt;span style="color:#400080;"&gt;in&lt;/span&gt; &lt;span style="color:#010001;"&gt;dictionary&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Values&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 30&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 31&lt;/span&gt; &lt;span style="color:#400080;"&gt;if&lt;/span&gt; (&lt;span style="color:#010001;"&gt;resource&lt;/span&gt; &lt;span style="color:#400080;"&gt;is&lt;/span&gt; &lt;span style="color:#010001;"&gt;T&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 32&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 33&lt;/span&gt; &lt;span style="color:#010001;"&gt;result&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Add&lt;/span&gt;((&lt;span style="color:#010001;"&gt;T&lt;/span&gt;) &lt;span style="color:#010001;"&gt;resource&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 34&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 35&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 36&lt;/span&gt; &lt;span style="color:#400080;"&gt;if&lt;/span&gt; (&lt;span style="color:#010001;"&gt;dictionary&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;MergedDictionaries&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;!=&lt;/span&gt; &lt;span style="color:#400080;"&gt;null&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 37&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 38&lt;/span&gt; &lt;span style="color:#400080;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;mergedDictionary&lt;/span&gt; &lt;span style="color:#400080;"&gt;in&lt;/span&gt; &lt;span style="color:#010001;"&gt;dictionary&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;MergedDictionaries&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 39&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 40&lt;/span&gt; &lt;span style="color:#010001;"&gt;result&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;AddRange&lt;/span&gt;(&lt;span style="color:#010001;"&gt;mergedDictionary&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;GetAllOfType&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#010001;"&gt;T&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt;());&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 41&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 42&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 43&lt;/span&gt; &lt;span style="color:#400080;"&gt;return&lt;/span&gt; &lt;span style="color:#010001;"&gt;result&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 44&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt;Next I create &lt;strong&gt;MyDataTemplate&lt;/strong&gt; class but not as an inheritor of &lt;strong&gt;DataTemplate&lt;/strong&gt;. Rather it is a stand alone class. Its definition looks more or less like this:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 7&lt;/span&gt; [&lt;span style="color:#305fb6;"&gt;ContentProperty&lt;/span&gt;(&lt;span style="font-weight:bold;color:#259241;"&gt;"Template"&lt;/span&gt;)]&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 8&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;class&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;MyDataTemplate&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 9&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 10&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;DataTemplate&lt;/span&gt; &lt;span style="color:#010001;"&gt;Template&lt;/span&gt; { &lt;span style="color:#400080;"&gt;get&lt;/span&gt;; &lt;span style="color:#400080;"&gt;set&lt;/span&gt;; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 11&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Type&lt;/span&gt; &lt;span style="color:#010001;"&gt;DataType&lt;/span&gt; { &lt;span style="color:#400080;"&gt;get&lt;/span&gt;; &lt;span style="color:#400080;"&gt;set&lt;/span&gt;; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 12&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;int&lt;/span&gt; &lt;span style="color:#010001;"&gt;Age&lt;/span&gt; { &lt;span style="color:#400080;"&gt;get&lt;/span&gt;; &lt;span style="color:#400080;"&gt;set&lt;/span&gt;; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 13&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt;So I have the following definition placed into the resource dictionary file:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 35&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MyDataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personTemplate"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Age&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="60"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Person&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 36&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 37&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personsBorder"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; PersonBorderStyle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 38&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 39&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Horizontal"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 40&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Path&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=ImageRef,&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Converter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; imageConverter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 41&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 42&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DropShadowBitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 43&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 44&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 45&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personName"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Padding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="15,15"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 46&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 47&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 48&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 49&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 50&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MyDataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Now that we have changed our resource dictionaries, we need to change the template selector. It get all necessary data that allows making the right choice of template. And what is more important, it can be guided only by object type and properties rather than resource keys.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 8&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;class&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;MySelector&lt;/span&gt; : &lt;span style="color:#305fb6;"&gt;DataTemplateSelector&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 9&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 10&lt;/span&gt; &lt;span style="color:#400080;"&gt;public&lt;/span&gt; &lt;span style="color:#400080;"&gt;override&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;DataTemplate&lt;/span&gt; &lt;span style="color:#010001;"&gt;SelectTemplate&lt;/span&gt;(&lt;span style="color:#400080;"&gt;object&lt;/span&gt; &lt;span style="color:#010001;"&gt;item&lt;/span&gt;, &lt;span style="color:#305fb6;"&gt;DependencyObject&lt;/span&gt; &lt;span style="color:#010001;"&gt;container&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 11&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 12&lt;/span&gt; &lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;person&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#010001;"&gt;item&lt;/span&gt; &lt;span style="color:#400080;"&gt;as&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Person&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 13&lt;/span&gt; &lt;span style="color:#400080;"&gt;if&lt;/span&gt; (&lt;span style="color:#010001;"&gt;person&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;!=&lt;/span&gt; &lt;span style="color:#400080;"&gt;null&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 14&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 15&lt;/span&gt; &lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;allTemplates&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;Application&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Current&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Resources&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;GetAllOfType&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#305fb6;"&gt;MyDataTemplate&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 16&lt;/span&gt; &lt;span style="font-weight:bold;color:#937a42;"&gt;//From all custom templates, select only those that are for our element's type or are defined for so&lt;/span&gt;&lt;span style="font-weight:bold;color:#937a42;"&gt;me of its base types&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 17&lt;/span&gt; &lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;templates&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#400080;"&gt;from&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt; &lt;span style="color:#400080;"&gt;in&lt;/span&gt; &lt;span style="color:#010001;"&gt;allTemplates&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 18&lt;/span&gt; &lt;span style="color:#400080;"&gt;where&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;DataType&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;==&lt;/span&gt; &lt;span style="color:#010001;"&gt;item&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;GetType&lt;/span&gt;() &lt;span style="color:#2e53d1;"&gt;||&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;DataType&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;IsAssignableFrom&lt;/span&gt;(&lt;span style="color:#010001;"&gt;item&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;GetType&lt;/span&gt;())&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 19&lt;/span&gt; &lt;span style="color:#400080;"&gt;select&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 20&lt;/span&gt; &lt;span style="font-weight:bold;color:#937a42;"&gt;//Filter only the template that is for age less than or equal to the item's age&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 21&lt;/span&gt; &lt;span style="color:#400080;"&gt;var&lt;/span&gt; &lt;span style="color:#010001;"&gt;filteredTemplate&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; (&lt;span style="color:#400080;"&gt;from&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt; &lt;span style="color:#400080;"&gt;in&lt;/span&gt; &lt;span style="color:#010001;"&gt;templates&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 22&lt;/span&gt; &lt;span style="color:#400080;"&gt;where&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Age&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;&amp;lt;=&lt;/span&gt; &lt;span style="color:#010001;"&gt;person&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Age&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 23&lt;/span&gt; &lt;span style="color:#400080;"&gt;orderby&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Age&lt;/span&gt; &lt;span style="color:#400080;"&gt;descending&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 24&lt;/span&gt; &lt;span style="color:#400080;"&gt;select&lt;/span&gt; &lt;span style="color:#010001;"&gt;template&lt;/span&gt;)&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Take&lt;/span&gt;(&lt;span style="color:#259241;"&gt;1&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 25&lt;/span&gt; &lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 26&lt;/span&gt; &lt;span style="color:#305fb6;"&gt;List&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#305fb6;"&gt;MyDataTemplate&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#010001;"&gt;templateList&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;=&lt;/span&gt; &lt;span style="color:#010001;"&gt;filteredTemplate&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;ToList&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 27&lt;/span&gt; &lt;span style="color:#400080;"&gt;if&lt;/span&gt; (&lt;span style="color:#010001;"&gt;templateList&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Count&lt;/span&gt; &lt;span style="color:#2e53d1;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#259241;"&gt;0&lt;/span&gt;)&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 28&lt;/span&gt; {&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 29&lt;/span&gt; &lt;span style="color:#400080;"&gt;return&lt;/span&gt; &lt;span style="color:#010001;"&gt;templateList&lt;/span&gt;[&lt;span style="color:#259241;"&gt;0&lt;/span&gt;]&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;Template&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 30&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 31&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 32&lt;/span&gt; &lt;span style="color:#400080;"&gt;return&lt;/span&gt; &lt;span style="color:#400080;"&gt;base&lt;/span&gt;&lt;span style="color:#2e53d1;"&gt;.&lt;/span&gt;&lt;span style="color:#010001;"&gt;SelectTemplate&lt;/span&gt;(&lt;span style="color:#010001;"&gt;item&lt;/span&gt;, &lt;span style="color:#010001;"&gt;container&lt;/span&gt;);&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 33&lt;/span&gt; }&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 34&lt;/span&gt; }&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Now lets go crazy! In the Default.xaml we have 2 templates that define how the person should be presented if he/she is younger or older than 60. In the Fancy.xaml file we can define as many templates as we want (3,4 .. etc.) that can define how a person should look for some other age. Lets define one for the age of 20 - this way everyone, from the test people we created, will have different template:&lt;/p&gt; &lt;div style="font-size:10pt;background:#e3d5c1;color:black;font-family:consolas;"&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 68&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="TwentyYearsOldPersonBorderStyle"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; TargetType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Border"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 69&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Background" &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 70&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 71&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; EndPoint&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="0.5,1"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; StartPoint&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="0.5,0"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 72&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Color&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="#FF000000"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Offset&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="0"/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 73&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Color&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="#FFF500DC"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Offset&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="1"/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 74&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 75&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter.Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 76&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 77&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderBrush"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 78&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="BorderThickness"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 79&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="CornerRadius"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="8" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 80&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Setter&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Property&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Margin"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="2,4" /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 81&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 82&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MyDataTemplate&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="twentyYearsOldPersonTemplate"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Age&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="20"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; DataType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Type&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Person&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 83&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 84&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personsBorder"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; TwentyYearsOldPersonBorderStyle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 85&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 86&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Horizontal"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 87&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="40"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Path&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=ImageRef,&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Converter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;={&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; imageConverter&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}}"&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 88&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 89&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DropShadowBitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 90&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image.BitmapEffect&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 91&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 92&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="personName"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Text&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Padding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="15,15"&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;="Black" /&amp;gt;&lt;/span&gt;&lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 93&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 94&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 95&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 96&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin:0px;white-space:normal;height:14px;"&gt;&lt;span style="background:#edcfa3;color:#a68a4a;"&gt; 97&lt;/span&gt; &lt;span style="font-weight:bold;color:#259241;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;local&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;MyDataTemplate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Visually the result is like this:&lt;/p&gt; &lt;p&gt;&lt;a rel="nofollow" target="_blank" href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_10_1.sflb"&gt;&lt;img width="404" height="138" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WPFDataBindingUnravelingdatatemplates_F46C-image_thumb_4_1.sflb" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In conclusion, what we get is a template based visualization of our data object that allows us to create more flexible skins/themes. There, we can define not only how should our object be displayed, but also which object exactly we want to be customizes (how old should the person be). The example utilizes only one property - the Age, but in practice we can use as many as we'd like. &lt;/p&gt; &lt;p&gt;And &lt;a rel="nofollow" target="_blank" href="http://blogs.telerik.com/photos/storage/varchev/Posts/WpfCustomDataTemplates.zip"&gt;here is the source&lt;/a&gt; for the example project.&lt;/p&gt;</description>
         <author>varchev</author>
         <guid isPermaLink="false">3f1a0cb6-b0ea-4ec2-bb97-1613897165ee</guid>
         <pubDate>Tue, 17 Jun 2008 11:06:20 -0700</pubDate>
      </item>
   </channel>
</rss><!-- fe3.pipes.re3.yahoo.com uncompressed Sun Jul 12 05:19:12 PDT 2009 -->
