【问题标题】:Using XML to populate Model not a Database使用 XML 填充模型而不是数据库
【发布时间】:2016-08-26 11:15:56
【问题描述】:

我最近开始了学习 WPF 和 MVVM 的旅程。然而,我发现很多指南和讨论都与数据库中的 MVVM 数据访问有关。

我只是希望能够加载 XML 文件而不是通过数据库,但我在该领域没有太多知识,也没有在 MVVM 中使用 XML 作为数据源的最佳实践。

任何帮助都将不胜感激。

【问题讨论】:

  • 有很多方法,根据您的应用程序可能会有所不同。您可能希望从 DataSet.ReadXml() 方法或 DataTable.ReadXml() 方法开始。
  • 所以您的意思是说使用 XDocument 加载 XML 并放入 DataSet 或 DataTable 中?
  • 查看我更新的代码。
  • 有没有在MVVM中调用这些方法的例子。我只问因为它会让我的头脑更理解它。这些方法应该在数据层中调用正确吗?不是查看模型。
  • 只有在标签层数较少的情况下,才能将 Xml 读入 DataSet/DataTable。对于层数较大的xml,最好在代码中解析xml。数据集 ds = new DataSet(); ds.ReadXml("文件名");

标签: c# xml wpf mvvm


【解决方案1】:

您的问题似乎与 WPF 或 MVVM 没有任何关系,您的问题似乎与使用 XML 进行数据访问有关。一种这样的方式是Linq to XML?

XDocument xmlDocument = XDocument.Load(filename);

var data = (from item in xmlDocument.Descendants()
            select new
            {
                Customers = (from customers in item.Descendants("Customer")
                             select new Customer
                             {
                                 Name = customers.Element("Name").Value,
                                 Address = customers.Element("Address").Value
                             }).ToList(),
                Manufacturers = (from manufacturers in item.Descendants("Manufacturer")
                                 select new Manufacturer
                                 {
                                     Name = manufacturers.Element("Name").Value,
                                     Phone = manufacturers.Element("Phone").Value
                                 }).ToList()
            }).SingleOrDefault();

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多