Mega Code Archive

 
Categories / C# / WPF
 

Hyperlink and xpath filter for XmlDataProvider

<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);                 });         }     } }