1

我一直在尝试设置一个函数来绘制一些数据系列,而图表控件总是给出一些错误,这真的很烦人,因为这个控件没有合适的教程。

到目前为止,我有这个代码:

using System.Windows.Controls.DataVisualization.Charting;

public DataTable results;

public void plot ( Chart chr ) {    
    int cols = results.Columns.Count;
    int rows = results.Rows.Count;
    for ( int j = 1 ; j < cols ; j++ ) {
        //Add serie
        string name = results.Columns[j].ColumnName;

        //add data for the serie
        List<PlotValue> values = new List<PlotValue>( );
        for ( int i = 0 ; i < rows ; i++ ) {
            DateTime? x = results.Rows[i][0] as DateTime?; //time
            double y = double.Parse( results.Rows[i][j].ToString( ) ); //Value
            values.Add( new PlotValue( x , y ) );
        }

        LineSeries serie = new LineSeries();
        serie.LegendItems.Add( name );
        serie.ItemsSource = values;
        chr.Series.Add( serie );
    }
}

“结果”是一个由另一个异步进程修改的 DataTable,所以我只想在另一个进程完成时读取它。

我还定义了这个类:

public class PlotValue {
    public DateTime? Date { get; set; }
    public double Value { get; set; }

    public PlotValue ( DateTime? date , double val ) {
        Date = date;
        Value = val;
    }
}

到目前为止,错误是它告诉我没有轴(这是有道理的),我不知道如何添加它们。

请我想在设计时使用 NO XAML,在运行时只使用 C# 代码,因为系列的数量可能会改变。

或者,我会更直接地转向任何其他人都有经验的控制。

我在.net 4.5上,图表控件属于[System.Windows.Controls.DataVisualization.Charting]

提前致谢!!

4

0 回答 0