Combining DataTemplates at runtime
You could create the DataTemplate dynamically using the XamlReader.Parse or XamlReader.Load method, e.g.: string template = “<DataTemplate xmlns =\”http://schemas.microsoft.com/winfx/2006/xaml/presentation\” xmlns:x =\”http://schemas.microsoft.com/winfx/2006/xaml\”><StackPanel>[PLACEHOLDER]</StackPanel></DataTemplate>”.Replace(“[PLACEHOLDER]”, “…custom code…”); return System.Windows.Markup.XamlReader.Parse(template) as DataTemplate; The custom parts could be defined as UserControls. I am afraid there is no way to base a DataTemplate on another one in pure XAML though.