您好我正在尝试每秒更新折线图(来自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(或任何其他类型的图表)时,我收到此错误:
此时无法修改此节点的逻辑子节点,因为正在进行树步行。
有谁能告诉我为什么我会收到错误或提出替代方法?
感谢您的帮助!
答案 0 :(得分:1)
正如ColinE所提到的,它确实似乎是工具包中的一个错误。
我建议你看看Dynamic Data Display,它真正促进了这些事情的发展,并且非常容易。他们提供了一些新对象,例如ObservableDataSource<T>
,您可以调用source.AppendAsync(Dispatcher, T)
来更新图表。