0
我有一個緩衝區列表,顯示在telerik radchart中。 它正確顯示,但是當一個(或多個)緩衝區更新時,我想更新圖表以反映新狀態。 我能做的唯一事情就是重新創建圖表,從頭開始,這是一個非常簡單的解決方案,但不是很聰明...所以我的問題是,如果有一個特殊的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();
}));
}
請我如何能更好地處理更新一些想法。 在此先感謝!