嗨,我正在尝试每秒钟更新一张线图(从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 SubXAML:
<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 (或任何其他类型的图表)时,我会得到这个错误:
此时无法修改此节点的逻辑子节点,因为正在进行树遍历。
有人能告诉我为什么我会出错或者建议一个替代的方法吗?
谢谢你的帮助!
发布于 2011-09-08 08:19:43
正如ColinE所提到的,它确实是工具箱中的一个bug。
我建议看一看动态数据显示,它确实为这类事情提供了便利,而且非常容易。它们提供了一些像ObservableDataSource<T>这样的新对象,在此基础上,您可以调用source.AppendAsync(Dispatcher, T)来更新图形。
https://stackoverflow.com/questions/7337409
复制相似问题