2008-09-13 10 views
3

私が見たすべてのサンプルは、xmldataproviderソースで静的XMLを使用し、XPathバインディングを使用してUIコントロールをデータバインドするために使用されます。 アイデアは、WPF UIを使用して動的XML(コーディング時に開発者に知られている構造)を編集することです。XMLのXPathにバインドする、データバインドされたUIコントロールの背後にあるコードにXML文字列をロードする方法はありますか?

誰かが動的なXML文字列をロードする方法を見つけましたか(実行時にファイルからロードするなど)、そのXML文字列をXmlDataproviderソースとして使用しますか?

コードスニペットが優れています。

更新:より明確にするために、 Webサービス呼び出しから受け取ったxml文字列をロードしたいとしましょう。私はxmlの構造を知っています。だから、私はWPFウィンドウのWPF UIコントロールにデータバインドします。この仕事をするには? Web上のすべてのサンプルは、XmlDataProviderノードのXAMLコード内のXML全体を定義します。これは私が探しているものではありません。コードビハインドでxml文字列を使用して、UIコントロールにデータバインドする必要があります。

+0

あなたの質問はあまり明確ではありません。 –

答えて

2

ここで私は、ディスクからのXMLファイルをロードし、TreeViewコントロールにバインドするために使用されるいくつかのコードがあります。私は簡潔さのためにいくつかの正常なテストを取り除いた。この例のXMLはOPMLファイルです。

XmlDataProvider provider = new XmlDataProvider(); 

if (provider != null) 
{ 
    System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); 
    doc.Load(fileName); 
    provider.Document = doc; 
    provider.XPath = "/opml/body/outline"; 
    FeedListTreeView.DataContext = provider; 
} 
1

Webサービスを使用してXMLを取得し、そのXMLドキュメントを作成すると、xmlDataProviderのソースをサービスから取得したXMLDocumentに設定できます。

私はそれをテストするためのビジュアルスタジオのPCではありませんが、これを行うことが可能でなければなりません。あなたはあなたの質問で述べたように

の手順は次のとおりです。

 
1. Get XML from webservice 
2. Convert XML String to XML Document 
3. Set the XMLDataProvider.Document value to your XML Document 
4. Bind that to your controls 
関連する問題