<Page x:Class="WpfInteropShortcomings.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WpfInteropShortcomings" > <Page.Resources> <XmlDataProvider x:Key="items" XPath="/Items/Item"> <x:XData> <Items xmlns=""> <Item Title="A" Target="A.xaml" /> <Item Title="B" Target="B.xaml" /> <Item Title="C" Target="C.xaml" /> </Items> </x:XData> </XmlDataProvider> <DataTemplate x:Key="itemTemplate"> <TextBlock> <Hyperlink NavigateUri="{Binding XPath=@Target}"> <TextBlock Text="{Binding XPath=@Title}" /> </Hyperlink> </TextBlock> </DataTemplate> </Page.Resources> <ItemsControl DataContext="{StaticResource items}" ItemsSource="{Binding}" ItemTemplate="{StaticResource itemTemplate}" VerticalAlignment="Top" HorizontalAlignment="Left"/> </Page> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Interop; using System.Windows.Forms.Integration; namespace WpfInteropShortcomings { public partial class Window1 : Page { public Window1() { InitializeComponent(); ElementHost elemHost = new ElementHost(); elemHost.PropertyMap.Add("Text", delegate(object host, string prop, object val) { ContentControl c = (ContentControl) elemHost.Child; //c.Content = val; Console.WriteLine(val); }); } } }