2010-01-10 86 views
3

我做了一个基于xml文件中的值绘制组织树的应用程序。如何在运行时更改wpf中的xmldataprovider源代码?

XAML文件是这样的:

<Window.Resources> 


    <!-- The Org Chart Data--> 
    <XmlDataProvider x:Key="organization" Source="model.xml" /> 

    <SolidColorBrush x:Key="ListBorder" Color="#FF7F9DB9"/> 

    <!-- The Style for Nodes --> 
    <Style TargetType="{x:Type draw:Node}"> 
     <Setter Property="OverridesDefaultStyle" Value="true"/> 
     <Setter Property="Template"> 
     --------------------------------------------------------- 

我希望能够通过选择打开文件对话框(如按钮点击)我如何做一个XML文件在运行时更改源?

回答

6

您可以通过在代码文件中编写(XmlDataProvider)this.Resources["organization"]来获得XmlDataProvider实例。

然后,您可以将Source属性设置为文件对话框中的路径。

例如:

var provider = (XmlDataProvider)this.Resources["organization"]; 
var dialog = new OpenFileDialog(); 
dialog.Filter = "XML Files|*.xml"; 
if (dialog.ShowDialog(this)) { 
    provider.Source = new Uri(dialog.FileName, UriKind.Absolute);