繁体   English   中英

如何在WPF C#中使用xmldataprovider读取xml文件

[英]How to read an xml file using xmldataprovider in wpf C#

我有一个定义了wpf控件的xaml文件,我将其所有标签控件绑定到xml文件并从该文件填充。 我正在使用xmldataprovider使用其source属性

<Grid.DataContext>
<XmlDataProvider x:Name="LoadData" Source="data.xml" XPath="Loads/*" Document=/>
</Grid.DataContext>
<Label Grid.Row="1" Name="textbox1" Grid.Column="0" Grid.RowSpan="3" Grid.ColumnSpan="2" Background="Gray" BorderThickness="2" Content="{Binding XPath=teamname, Mode=OneWay}" FontSize="36">

在后面的代码中

 string filename = "C:\\data.xml";
            LoadData.Source = new Uri(filename);

一切正常,我唯一的问题是我想在只读模式下打开此xml,因为另一个程序正在向其中写入它,并且出现“正在被另一个程序使用”的异常

xmldataprovider是否提供任何此类设置来设置数据提供程序中的源文件/读取xml文件。是否有人在...之前欢迎输入/建议...非常感谢

使用Source属性没有这种可能性。 Source表示一个Uri基于该Uri创建一个WebRequest ,以使用Stream获取数据。 但是,您无法控制如何创建此流。

有一个解决方法。 但是,您必须在代码中执行此操作。 您可以手动加载XML文档,并将其分配给XmlDataProviderDocument属性。

就像是:

XmlDocument doc = new XmlDocument();
using (FileStream s = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    doc.Load(s);
}

LoadData.Document = doc;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM