繁体   English   中英

自定义WPF Datagrid标头和xml绑定

[英]Custom WPF datagrid header and xml binding

我一直在尝试找出如何重新创建绑定到XML文件的“复杂”数据网格标头。 我还没有找到有关如何解决此问题的任何示例。

这是一个示例XML数据文件(可以具有更多的“传感器”和更多的“度量”):

<?xml version="1.0" encoding="utf-8" ?>
<ShipData>
  <Draught>
    <Measures>
      <Mdata>M1</Mdata>
      <Mdata>M2</Mdata>
    </Measures>
    <Sensor Name="Sensor1">
      <Measurement>
        <Bis>45</Bis>
        <Man>43</Man>
      </Measurement>
      <Measurement>
        <Bis>44</Bis>
        <Man>46</Man>
      </Measurement>
    </Sensor>
    <Sensor Name="Sensor2">
      <Measurement>
        <Bis>45</Bis>
        <Man>43</Man>
      </Measurement>
      <Measurement>
        <Bis>43</Bis>
        <Man>45</Man>
      </Measurement>
    </Sensor>
  </Draught>
</ShipData>

这就是我设置数据网格样式的方式:

带有自定义双行标题的datagrid

由于数据可以更改(更多传感器和更多度量),因此我将在加载数据网格后执行一些代码。

编辑:所以我想做的事情是:

  1. 创建标题(由两行组成,上一行跨越两列)

    (已解决) >>由于您不能真正跨越标题的多个列,所以最好的方法是在Datagrid上方以相等的解决方案创建一个网格

    您可以玩:

     <DataGrid.Columns> <DataGridTemplateColumn> <DataGridTemplateColumn.HeaderTemplate> <DataTemplate> ... 

    ...但是很难看...至少在这里。 我不认为HeaderTemplate用于我想做的事情。

  2. 将xml数据绑定到网格

    仍在弄清楚(以及如何将对数据的更改保存回文件)

最好通过后面的代码

我解决了有关“超级”标头的问题(例如,参见上文):

由于您不能真正跨越标题的多个列,因此最好的方法是在数据网格上方,具有相等的列大小(或超级标题的组合大小)的位置创建网格

我一直在努力处理xmlprovider和xpath背后的代码(但我将提出一个新问题,以免进一步污染该问题)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM