最初にサーバーにファイルを保存することなく、linq クエリの結果を C# の TreeView および GridView のデータソースとして使用する方法を見つけようとしています。さまざまなオプションを試しましたが、すべて最初にドキュメントをファイルとして保存する必要があります。誰かが私を助けてくれますか?コードを以下に示します。
XDocument products = new XDocument(
new XDeclaration("1.0", "utf-8", ""),
new XElement("products",
new XElement("product", new XAttribute("id", "p1"),
new XElement("name", "Alpha"),
new XElement("Address", "200 WATERLOO DRIVE"),
new XElement("price",
new XElement("currency", "Rs.")),
new XElement("stock", "19"),
new XElement("country", "USA",
new XElement("state", "California"))),
new XElement("product", new XAttribute("id", "p2"),
new XElement("name", "Beta"),
new XElement("Address", "500 MOUNTBATTEN AVENUE"),
new XElement("price",
new XElement("currency", "Rs.")),
new XElement("stock", "25"),
new XElement("country", "USA",
new XElement("state", "Florida")))));
//create a linq query
var newxml = from f1 in products.Elements("product")
where (string)f1.Element("country").Element("state") != "Florida"
select f1;
//Create an xml document in memory using the linq query
XDocument xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", ""),
new XElement("products"));
xdoc.Element("products").Add(newxml);
//create a datasource for TreeView or GridView using the xml document in memory.
XmlDataSource xmlds = new XmlDataSource();
xmlds.DataFile=xdoc;
TreeView1.DataSource = xmlds;
TreeView1.DataBind();
GridView1.DataSource = xmlds;
GridView1.DataBind();
xdoc からデータソースを作成するためのコードの一部が機能していません。ファイルを保存してからデータソースのファイルを呼び出すことで機能させることができますが、メモリからこれを行いたいです。