У меня есть список буферов, которые я показываю в радерах телериков. Он отображается правильно, но когда один (или несколько) буферов обновляется, я хочу обновить диаграмму, чтобы отразить новое состояние. Единственное, что я могу сделать, это воссоздать диаграмму с нуля, это очень простое решение, но не очень умное ... Так что мой вопрос в том, есть ли специальный тип RadChart или какой-либо параметр, чтобы установить диаграмму для автоматического обновления, когда одна из коллекции отображается как DataSeries. Кто-нибудь может помочь?Обновление таблицы telerik при изменении данных
Вот код, я использую для создания диаграммы:
private void createChart()
{
//Set axis stuff and clear old configuration here
//Create a dataseries for each values to draw
foreach (ChannelKeyValueConfiguration channelKeyValue in this.Device.Configuration.ChannelConfigurations)
{
IChannel channel = this.Device.Channels[channelKeyValue.Name];
DataSeries serie = new DataSeries();
serie.Definition = new LineSeriesDefinition();
serie.LegendLabel = channel.Description;
int i = 0;
int elNumber = channel.Measure.Buffer.Count; //Neeeded to set xAxis values
DateTime minTime = channel.Measure.TimeStamp.Value.AddMilliseconds(-1 * elNumber * channel.Measure.PollingTime); //Neeeded to set xAxis values
foreach (double point in channel.Measure.Buffer) //Buffer is a Queue<T> that i use as data provider. It updates each x seconds.
{
i++;
serie.Add(new DataPoint() { XValue = minTime.AddMilliseconds(i * channel.Measure.PollingTime).ToOADate(), YValue = point });
}
RadTimeChart.DefaultView.ChartArea.DataSeries.Add(serie);
}
}
Тогда у меня есть обработчик событий, который должен обновить таблицу. Поскольку я не знаю, как его достичь, он просто воссоздает его, чтобы он обновлялся.
void StatusChanged(object sender, EventArgs e)
{
Dispatcher.BeginInvoke(new Action(delegate
{
createChart();
}));
}
Просьба представить некоторое представление о том, как лучше обрабатывать обновления. Спасибо заранее!