我目前正在使用以下 XAML 代码将我的 xml 文件添加为资源:
<XmlDataProvider x:Key="MyData" Source="D:\myfile.xml" XPath="Books/Book" />
现在我想使用 %appdata% 文件夹中的这个 myfile.xml,以获得更多的可移植性。显然,使用 Source="%appdata%\myfile.xml" 不起作用,因为 XAML 似乎不接受“%”字符。
因此我想在我的主窗口代码中以编程方式添加此资源。我试过了:
public MainWindow()
{
this.Resources.Add("MyData", "D:\\myfile.xml");
InitializeComponent();
}
但是我在 Resources.Add 方法中没有可用的 XPath="" 属性,因此应用程序无法正常工作。
有没有办法设置这个属性?还是我做错了?
对此没有谷歌答案。
非常感谢。
最佳答案
您可以在代码隐藏中使用此代码段:
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";
我建议最后一种解决方案。
关于c# - 如何添加资源 : xml file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5841525/