1
XML文書をテーブルに変換して動的に表示することは可能ですか?私のプログラムは実行中にXMLを生成するので、xmlドキュメントの内容を表形式で表示する必要があります。現時点では、ドキュメントをxmlreaderで解析し、静的にデータグリッドに配置しています。それを行うためのよりよい方法がありますか?WPFのXML文書をテーブルに変換する
XML文書をテーブルに変換して動的に表示することは可能ですか?私のプログラムは実行中にXMLを生成するので、xmlドキュメントの内容を表形式で表示する必要があります。現時点では、ドキュメントをxmlreaderで解析し、静的にデータグリッドに配置しています。それを行うためのよりよい方法がありますか?WPFのXML文書をテーブルに変換する
データセットオブジェクトには、 "ReadXml(文字列ファイル名)"メソッドがあります。
サンプルXMLのproducts.xml:
<?xml version="1.0" encoding="utf-8"?>
<Products>
<Product id="1">
<Name>Product Name</Name>
</Product>
<Prodcut id="2">
<Name>Another Product</Name>
</Product>
</Products>
C#はスニペット:
DataSet myXmlDataSet = new DataSet();
myXmlDataSet.ReadXml("products.xml");
DataTable productTable = myXmlDataSet("Product");
これは動作しますが、私は通常、POCOさんに私のxmlを取得し、ビジネスのコレクションを使用してUIのグリッドを移入することを好みますオブジェクト。データソースが変更された場合(SQLやその他のデータソースに移動する場合)、そのデータアクセスコンポーネントを置き換えることができます。 System.Xml.LinqのXDocumentはこれを行うのに非常に便利です。
var xmlDoc = XDocument.Load("products.xml");
var productNodes = xmlDoc.Root.Elements("Product");
var prodList = productNodes.Select(prod => new Product()
{
id = int.Parse(prod.Attribute("id").Value),
Name = drug.Element("Name")
})
.ToList();
「静的にデータグリッドに入れる」とはどういう意味ですか?コードで記述すれば、動的です!とにかく、 'System.Windows.Data.XmlDataProvider'を見てください。 –