Mega Code Archive

 
Categories / C# / WPF
 

Load XmlDocument to XmlDataProvider

<Window x:Class="WpfApplication1.Window1"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     xmlns:local="clr-namespace:WpfApplication1"     Title="Window1" Height="400" Width="600" Loaded="Window_Loaded" Name="window">     <Window.Resources>         <XmlDataProvider x:Key="xaml" />     </Window.Resources>     <StackPanel>         <TreeView Name="treeView1" ItemsSource="{Binding Source={StaticResource xaml}, XPath=*}">             <TreeView.ItemTemplate>                 <HierarchicalDataTemplate ItemsSource="{Binding XPath=*}">                     <TextBlock Text="{Binding Path=Name}" />                 </HierarchicalDataTemplate>             </TreeView.ItemTemplate>         </TreeView>         <TextBox Text="{Binding ElementName=treeView1, Path=SelectedItem.OuterXml, Mode=OneWay}" TextWrapping="Wrap" />     </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Linq; 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.Navigation; using System.Windows.Shapes; using System.IO; using System.Windows.Markup; using System.Xml; namespace WpfApplication1 {     public partial class Window1 : Window     {         public Window1()         {             InitializeComponent();         }         private void Window_Loaded(object sender, RoutedEventArgs e)         {             string xaml = XamlWriter.Save(this);             XmlDocument doc = new XmlDocument();             doc.LoadXml(xaml);             XmlDataProvider provider = (XmlDataProvider)FindResource("xaml");             provider.Document = doc;             provider.Refresh();         }     } }