Pregunta

I've got a LineSeries where DataFieldX values are DateTime, visually its working great but after implementing OnClick for the chart I can't seem to convert the selected value back to DateTime:

        Plot plot = sender as Plot;
        var series = plot.GetSeriesFromPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), 10);
        var result = series.GetNearestPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), true);
        var data = result.DataPoint;
        DateTime dt = new DateTime();
        dt = dt.AddSeconds(data.X);

data.X is 41577.61596880656, and the time for the point in the chart is 31/10/2013 14:47. dt ends up being 01.01.0001 11:32:57

How can I successfully convert data.X back to DateTime?

¿Fue útil?

Solución

You need to add days, not seconds to the date December 31, 1899

DateTime dt = new DateTime(1899,12,31);
dt = dt.AddDays(data.X);

For some reason when I run this I'm off by 0.3 seconds. I'm assuming that is based off of the precision of the format the data is being stored in.

enter image description here

Otros consejos

Doesn't DateTimeAxis.ToDateTime() perform the required conversion?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top