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.

Leave a Comment