Jak ustawić zakres DateTime na osi X dla System.Windows.Forms.DataVisualization.Charting?

Obecnie próbuję wyświetlić wykres za pomocą formularzy systemu Windows, który pokazuje dane miesięczne na osi X i wartość całkowitą na osi Y; nie ustawiam jednak poprawnie zakresu dla osi X, gdzie MonthYear to DateTime:

var pnChart = new System.Windows.Forms.Panel();
pnChart.Controls.Clear();
DataTable dtChartData = myDatabaseLayer.BuildDataTable("SELECT Added, Modified FROM tblStatistics WHERE ApplicationID = " + intApplicationID + " ORDER BY MonthYear");
Chart chart = GenerateChart(dtChartData, pnChart.Width, pnChart.Height, "ActiveBorder", 6);
chart.Series[0].XValueType = ChartValueType.DateTime;
chart.ChartAreas[0].AxisX.LabelStyle.Format = "yyyy-MM-dd";
chart.ChartAreas[0].AxisX.Interval = 1;
chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Months;
chart.ChartAreas[0].AxisX.IntervalOffset = 1;
pnChart.Controls.Add(chart);

Problem polega na tym, że kiedy wyświetlany jest wykres, oś X ma datę „1900-01-01”, więc moje pytanie brzmi, jak ustawić zakres dat, aby rozpocząć od 01.01.2013?

Pamiętaj, że przeszukałem Internet i spróbowałem następujących ustawień, ale nie podają mi prawidłowego zakresu:

chart.ChartAreas[0].AxisX.Maximum = DateTime.Now.Ticks;

Lub,

chart.ChartAreas[0].AxisX.Crossing = DateTime.Now.Ticks;

Lub,

chart.ChartAreas[0].AxisX.Minimum = DateTime.Now.Ticks;

TIA.

AKTUALIZACJA: Pamiętaj, że znalazłem sposób prawidłowego ustawienia zakresu za pomocą tego:

            chart.Series[0].XValueType = ChartValueType.DateTime;
            DateTime minDate = new DateTime(2013, 01, 01);
            DateTime maxDate = DateTime.Now;
            chart.ChartAreas[0].AxisX.Minimum = minDate.ToOADate();
            chart.ChartAreas[0].AxisX.Maximum = maxDate.ToOADate();

Powyższy kod ustawia właściwy zakres teraz dla osi X; jednak teraz sam wykres jest pusty.

AKTUALIZACJA 2:

Tak, dziękuję DasKrumelmonster - to naprawiło! Używałem kodu zhttp://www.codeproject.com/Articles/168056/Windows-Charting-Applicationi powinien po prostu przyjrzeć się bliżej funkcji chronionego przez autora wewnętrznego wykresu GenerateChart (DataTable dtChartDataSource, int width, int height, string bgColor, int intType). Aby rozwiązać ten problem, zmieniłam te wiersze:

foreach (DataRow dr in dtChartDataSource.Rows)
{
    double dataPoint = 0;
    double.TryParse(dr[dc.ColumnName].ToString(), out dataPoint);
    DataPoint objDataPoint = new DataPoint() { AxisLabel = "series", YValues = new double[] { dataPoint } };
     chart.Series[series].Points.Add(dataPoint);
}

Do tego:

DateTime dtStart = new DateTime(2013, 01, 01);
int intMonthCounter = 0;
//Add data points to the series
foreach (DataRow dr in dtChartDataSource.Rows)
{
    double dataPoint = 0;
    double.TryParse(dr[dc.ColumnName].ToString(), out dataPoint);
    DataPoint objDataPoint = new DataPoint() { AxisLabel = "series", YValues = new double[] { dataPoint } };
    chart.Series[series].Points.AddXY(dtStart.AddMonths(intMonthCounter),  dataPoint);
    intMonthCounter++;
}

Dziękuję Ci!

questionAnswers(1)

yourAnswerToTheQuestion