【问题标题】:Infragistics Ultrachart: Populate XY Data Series with data from DataTableInfragistics Ultrachart:使用 DataTable 中的数据填充 XY 数据系列
【发布时间】:2023-03-07 21:37:01
【问题描述】:

有人使用 Infragistics UltraChart 吗?我正在尝试将带有高程监视器数据的 DataTable 绑定到 Windows 窗体中的折线图。

从下面的代码可以看出,我已经定义了DataSet和DataTable,并且已经开始设置图表的属性,但是我不知道如何将DataTable表绑定到图表中的XYDataPointCollection系列.基本上我希望能够从数据表中的两个字段绘制一条线:指定日期范围的“dateTime”(x 轴)和“gwElevation”(y 轴)。

} GroundwaterMonitorDataSet gwMonDataSet = new GroundwaterMonitorDataSet(); 数据表 gwMonDataTable = new DataTable(); gwMonDataTable = gwMonDataSet.Tables.Add("P-14-01_Data");

  this.chartGwData.ChartType = Infragistics.UltraChart.Shared.Styles.ChartType.LineChart;
  Infragistics.UltraChart.Data.Series.XYDataPointCollection gwMonSeries = new Infragistics.UltraChart.Data.Series.XYDataPointCollection();

  chartGwData.LineChart.DrawStyle = Infragistics.UltraChart.Shared.Styles.LineDrawStyle.Solid;
  chartGwData.LineChart.StartStyle = Infragistics.UltraChart.Shared.Styles.LineCapStyle.Round;
  chartGwData.LineChart.EndStyle = Infragistics.UltraChart.Shared.Styles.LineCapStyle.Flat;
  chartGwData.LineChart.NullHandling = Infragistics.UltraChart.Shared.Styles.NullHandling.DontPlot;
  chartGwData.LineChart.Thickness = 3;

  this.chartGwData.DataSource = gwMonDataTable;
  this.chartGwData.DataBind();

}

感谢您的帮助。

【问题讨论】:

    标签: c# .net infragistics


    【解决方案1】:

    好吧,我终于自己想通了:

    首先必须创建一个 EnumerableRowCollection。我使用从我的数据集中的表中读取的 linq 查询创建了一个:

    //create EnumerableRowCollection using the linq query on the DataSet table
    gwMonDataTable = gwMonDataSet.P1401;
          EnumerableRowCollection<DataRow> qrySelectGwMonRecords =
            (from g in gwMonDataTable.AsEnumerable()
             where g.Field<DateTime>("readingDate") >= clndrGwMonStart.Value && g.Field<DateTime>("readingDate")<= clndrGwMonEnd.Value
             select g);
    

    然后我创建一个 NumericTimeSeries,它使用 foreach 循环填充:

    //create NumericTimeSeries; populate using foreach loop
    Infragistics.UltraChart.Resources.Appearance.NumericTimeSeries gwElevSeries = new Infragistics.UltraChart.Resources.Appearance.NumericTimeSeries();
          foreach (DataRow gwElevDr in qrySelectGwMonRecords)
          {
            gwElevSeries.Points.Add(new Infragistics.UltraChart.Resources.Appearance.NumericTimeDataPoint(System.DateTime.Parse(gwElevDr.ItemArray[2].ToString()),System.Double.Parse(gwElevDr.ItemArray[8].ToString()),"C",false));
          }
    

    现在可以将 NumericTimeSeries 添加到 UltraChart:

    //add the data series to the chart as the data source
    chartGwData.Series.Add(gwElevSeries);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-05
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多