1

我有一个包含大约 450 项的 XML 文档。

<Customers>
    <Customer>
        <Name>XYZ</Name
        <Phone>1234567890</Phone>
    </Customer>
    <Customer>
        <Name>ABC</Name>
        <Phone>9012345678</Phone>
    </Customer>
</Customers>

我需要将此文档绑定到 WPF 中的表单。那部分我已经想通了。我将名称绑定到组合框,电话(和其他字段)绑定到文本块,以便它们显示组合框中选择的任何客户的信息。这是在 XAML 中完成的。

不过,我需要添加的是能够从现有列表中添加/更新/删除客户,并在 XML 文件中添加/更新/删除它们。我在想的是,我不能仅在 XAML 中执行此操作,并且需要以某种方式将 XML 读入具有 Customer 类的 List 中,该类具有与 XML 文档中的字段匹配的所有属性。那是对的吗?如果是这样,能够做到这一点的最简单方法是什么?现在我正在阅读 LINQ to XML,试图弄清楚如何做到这一点,但在我去那里之前,我想知道这是否是最简单的方法。

我目前正在从事的项目是为了工作,开发只是我偶尔做的事情,但知道如何做到这一点对于 Windows Phone 应用程序的想法来更新我的一个应用程序很方便。

提前致谢!

4

1 回答 1

0

启动 Visual Studio 命令行并使用 xsd.exe 工具创建一个实现INotifyPropertyChanged.

这是一个示例命令:

xsd.exe /d /l:cs ..\MYXml.xsd /edb /o:..\Data\ /n:MyApp.Data
  • /d:创建数据集。
  • /l:cs:C# 语言。
  • ..\MyXml.xsd:我的 xsd 的路径。
  • /edb:创建数据绑定 xsd,这将使数据集实现INotifyPropertyChanged
  • /o:输出目录。
  • /n:类的命名空间。

您可以轻松地从 xml 文件加载和保存生成的 DataSet。

public MyDataSet Load(string path)
{
    MYXml ds = new MYXml();
    ds.ReadXml(path);
    return ds;
}

public void SaveChanges(MYXml ds, string path )
{
    // ds.AcceptChanges();
    ds.WriteXml(path);
}

MSDN:XML 架构定义工具 (Xsd.exe)

于 2013-09-06T20:16:53.913 回答