【问题标题】:Using WPF to display XML使用 WPF 显示 XML
【发布时间】:2010-07-15 10:28:21
【问题描述】:

我有一个小项目,我认为 WPF 非常适合,但是我没有那么多时间,所以我正在寻找可行性信息和指针。我正在尝试显示 XML 文档中的大量项目,从我目前所读的内容来看,我相信有可能:

使用 XML 文档作为数据源。

将 XML 中的每个项目加载到一个对象中,然后将其添加到一个集合中。 (是否可以将 XML 直接绑定到集合?)

使用集合将其绑定到视图。

视图中的每个对象都以类似于 HTML 表格的方式显示。 (垂直使用stackPanel中的自定义控件?)

集合中可能有数千个对象,因此需要能够仅显示 50 个/页并具有排序和搜索功能。 (使用collectionView?)

我在网络上看到过类似的场景和示例,但大多数都被淡化了,我不想开始这个,然后在我可以创建基于网络的解决方案时碰壁。

如果有人能告诉我是否可行,请指出正确的方向或突出显示任何潜在的问题领域,我们将不胜感激。

谢谢。

【问题讨论】:

    标签: wpf xml binding


    【解决方案1】:

    考虑这个示例 xml 文件:

    <Employees>
      <Employee ID="101">
        <Name>Ram</Name>
        <Salary>5000</Salary>
      </Employee>
      <Employee ID="102">
        <Name>Siva</Name>
        <Salary>7000</Salary>
      ...
    </Employee>
    

    您可以像这样从 xml 文件中加载数据:

    XDocument doc = XDocument.Load(yourFilePath);
    

    然后你可以这样查询:

    var filterQuery = from i in doc.Descendants("someNode")
                      where (float)i.Element("Salary") >= 6000.00
                      orderby (string)i.Element("Name")
                      select (string)i.Element("Name");
    

    从中创建一个 ObservableCollection

    var filteredList = new ObservableCollection(filterQuery);
    

    将此绑定到您的 ListView 或 xaml 中的其他集合。

    您可以在doc 上实现排序和搜索逻辑,并随时重新填充您的 ObservableCollection,更改将自动反映在 ListView 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2010-12-27
      • 2013-03-21
      • 2013-02-20
      • 1970-01-01
      相关资源
      最近更新 更多