每秒更新LineGraph

时间:2011-09-07 16:34:08

标签: wpf vb.net charts

您好我正在尝试每秒更新折线图(来自wpf数据可视化工具包)。以下代码适用于PieChart:

VB:

Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
    '  DispatcherTimer setup
    Dim dt As DispatcherTimer = New DispatcherTimer()
    AddHandler dt.Tick, AddressOf dispatcherTimer_Tick
    dt.Interval = New TimeSpan(0, 0, 1)
    dt.Start()
End Sub

Public Sub dispatcherTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
    UpadateChartData()
    Chart1.DataContext = ""
    Chart1.DataContext = ChartData
End Sub

Public Sub UpadateChartData()
    Dim r As Integer = GetRandom(1, 10)
    ChartData.Add(New ChartData() With {.Name = r.ToString, .Votes = r})
End Sub

XAML:

 <chartingToolkit:Chart Name="Chart1" Title="Chart1" Width="400" Height="400" >
        <chartingToolkit:LineSeries ItemsSource="{Binding}" IndependentValueBinding="{Binding Path=Name}" DependentValueBinding="{Binding Path=Votes}" />
</chartingToolkit:Chart>

但是当我使用LineSeries(或任何其他类型的图表)时,我收到此错误:

  

此时无法修改此节点的逻辑子节点,因为正在进行树步行。

有谁能告诉我为什么我会收到错误或提出替代方法?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

正如ColinE所提到的,它确实似乎是工具包中的一个错误。

我建议你看看Dynamic Data Display,它真正促进了这些事情的发展,并且非常容易。他们提供了一些新对象,例如ObservableDataSource<T>,您可以调用source.AppendAsync(Dispatcher, T)来更新图表。