【问题标题】:Update LineGraph Every Second每秒更新 LineGraph
【发布时间】:2011-09-08 16:19:43
【问题描述】:

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

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(或任何其他类型的图表)时出现此错误:

目前无法修改此节点的逻辑子节点,因为正在进行树遍历。

谁能告诉我为什么会出现错误或建议替代方法?

感谢您的帮助!

【问题讨论】:

标签: wpf vb.net charts


【解决方案1】:

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

我建议看一下Dynamic Data Display,它确实为这类事情提供了便利,并且非常容易。它们提供了一些新对象,例如 ObservableDataSource&lt;T&gt;,在此您可以调用 source.AppendAsync(Dispatcher, T) 来更新图表。

【讨论】:

  • Roel,感谢您为我指出损坏的 WPF 图表的替代方案!
猜你喜欢
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多