3

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

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

コードスニペットは素晴らしいでしょう。

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

4

2 に答える 2

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;
}
于 2008-12-27T20:15:38.287 に答える
1

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

私はそれをテストするためにビジュアルスタジオを備えたPCにいませんが、あなたがこれを行うことは可能であるはずです。

手順は、質問で述べたとおりです。

1.WebサービスからXMLを取得します
2.XML文字列をXMLドキュメントに変換します
3.XMLDataProvider.Document値をXMLドキュメントに設定します
4.それをコントロールにバインドします
于 2008-09-13T08:00:45.197 に答える