无法绑定XtraChart自动生成的系列

本文关键字:系列 自动生成 XtraChart 绑定 | 更新日期: 2023-09-27 18:12:37

我真的很纠结于如何动态地将我的对象绑定到我想要的图表中。

假设我有10个位置,每个位置采样一个特定的值。我将它们存储到ChartData对象中,每个对象都有很多读数。我还有一个对象,它存储对每个不同ChartData对象的引用。

我有以下(c#)对象中的数据:

class DataForCombinedChart
{
    List<ChartData> AllChartData { get; set; }
}
class ChartData {
    String SeriesName { get; set; }
    List<ChartReading> Readings { get; set; }
}
class ChartReading { 
    DateTime SampleTime { get; set; }
    int SampleReading { get; set; }
}

对于我的一个示例区域的图表,我只是绑定到一个ChartData对象。简单。

然而,我现在想做一个图表与所有(大约10)我的个人图表。

我一直在尝试使用自动生成系列来做到这一点,但无论我尝试什么,似乎我的对象都不是一种似乎有效的格式。XtraChart的所有文档似乎都是基于连接到数据库而不是POCO,所以我有点挣扎。

有人能建议我需要正确的类层次结构,以便以这种方式使用自动生成系列?

无法绑定XtraChart自动生成的系列

class DataForCombinedChart
{
    List<ChartData> AllChartData { get; set; }
}
class ChartData
{
    String SeriesName { get; set; }
    DateTime SampleTime { get; set; }
    int SampleReading { get; set; }
}

要做到这一点,你应该合并AllChartData与所有嵌套读数。

的例子:

AllChartData: [
    {
        SeriesName : "SeriesName1",
        Readings: [
            {
                SampleTime: "2016.10.1.10:00",
                SampleReading : 3
            },
            {
                SampleTime: "2018.10.1.10:00",
                SampleReading : 67
            },
            {
                SampleTime: "2011.10.1.10:00",
                SampleReading : 36
            },
        ]
    },
    {
        SeriesName : "SeriesName2",
        Readings: [
            {
                SampleTime: "2010.10.1.10:00",
                SampleReading : 76
            },
            {
                SampleTime: "2019.10.1.10:00",
                SampleReading : 89
            }
        ]
    },
    {
        SeriesName : "SeriesName3",
        Readings: [
            {
                SampleTime: "2004.10.1.10:00",
                SampleReading : 7
            },
            {
                SampleTime: "2010.10.1.10:00",
                SampleReading : 8
            }
        ]
    },
]

应转换为:

AllChartData: [
        {
            SeriesName : "SeriesName1",
            SampleTime: "2016.10.1.10:00",
            SampleReading : 3
        },
        {
            SeriesName : "SeriesName1",
            SampleTime: "2018.10.1.10:00",
            SampleReading : 67
        },
        {
            SeriesName : "SeriesName1",
            SampleTime: "2011.10.1.10:00",
            SampleReading : 36
        },      
        {
            SeriesName : "SeriesName2",
            SampleTime: "2010.10.1.10:00",
            SampleReading : 76
        },
        {
            SeriesName : "SeriesName2",
            SampleTime: "2019.10.1.10:00",
            SampleReading : 89
        },
        {
            SeriesName : "SeriesName3",
            SampleTime: "2004.10.1.10:00",
            SampleReading : 7
        },
        {
            SeriesName : "SeriesName3",
            SampleTime: "2010.10.1.10:00",
            SampleReading : 8
        }
]

所以SeriesName属性将被复制到每个嵌套的ChartReading实体