如何添加资源:xml文件

时间:2011-04-30 11:47:35

标签: c# wpf xml resources

我目前正在使用以下XAML代码将我的xml文件添加为资源:

<XmlDataProvider x:Key="MyData"  Source="D:\myfile.xml" XPath="Books/Book" />

现在我想使用%appdata%文件夹中的myfile.xml来获得更多的可移植性。显然,使用 Source =“%appdata%\ myfile.xml”不起作用,因为似乎XAML中不接受“%”char。

因此,我想在我的主窗口代码中以编程方式添加此资源。我试过了:

public MainWindow()
{
    this.Resources.Add("MyData", "D:\\myfile.xml");
    InitializeComponent();
}

但是,我在Resources.Add方法中没有 XPath =“”属性,因此应用程序无法正常工作。

有没有办法设置这个属性?或者我做错了吗?

没有谷歌回答这个问题。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以在代码隐藏中使用此代码段:

public MainWindow()
{
    XmlDataProvider provider = new XmlDataProvider()
    provider.Source = new Uri(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\myfile.xml");
    provider.XPath = "Books/Book";
    this.Resources.Add("MyData", provider);
}

这是自

以来添加资源的正确代码
 this.Resources.Add("MyData", "D:\\myfile.xml");

将向Recources添加一个字符串,其中包含键“MyData”和值“D:\ myfile.xml”

或者您仍然可以使用XAML声明,然后在构造函数中添加:

(this.Resources["MyData"] as XmlDataProvider).Source = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\myfile.xml";
(this.Resources["MyData"] as XmlDataProvider).XPath = "Books/Book";

我建议最后一个解决方案。