Рид уже рассмотрел подход "создай свой собственный XAML", но просто для иллюстрации подхода FrameworkElementFactory он будет выглядеть примерно так:
Сначала создайте FEF:
var fef = new FrameworkElementFactory(typeof(TextBlock));
fef.SetBinding(TextBlock.TextProperty, new Binding("Name"));
Затем создайте DataTemplate с его VisualTree, установленным на эту фабрику:
DataTemplate dt = new DataTemplate { VisualTree = fef };
Хотя, как отмечает Рид, подход FrameworkElementFactory официально устарел, но он все еще достаточно широко используется, я полагаю, потому что сборка строк XAML кажется такой грязной. (Хотя подход FEF быстро становится безумно сложным, если у вас нетривиальный шаблон ...!)