簡體   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