如何在WPF中运行时更改XmlDataProvider的源?

3

我制作了一个应用程序,根据来自xml文件的值绘制组织树。

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文件来更改源代码(例如点击按钮),我该怎么做?

1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接