gpt4 book ai didi

C#动态数据展示——更新折线图

转载 作者:行者123 更新时间:2023-11-30 22:06:11 25 4
gpt4 key购买 nike

在我的 XAML 文件中,我创建了一个 ChartPlotter,然后我在 c# 中创建了我的 LineGraphs 并将它们附加到我的 ChartPlotter。我试图找到一种方法来更新这些创建后的线图,但总是失败。

我找到的唯一解决方案是删除所有 LineGraphs ,用新值重新创建它们,最后将它们链接到我的 ChartPlotter。

如何更新线图?

for (int i = 0; i < lgs.Length; i++)
if (lgs[i] != null)
lgs[i].RemoveFromPlotter();

PS : lgs 是我的 LineGraph 数组。

最佳答案

要更新您的线图,您必须使用 ObservableDataSource 对象而不是 CompositeDataSource。对于此对象,您可以使用 AppendAsync() 方法。

public partial class MainWindow : Window
{
public ObservableDataSource<Point> source1 = null;

public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
// Create source
source1 = new ObservableDataSource<Point>();
// Set identity mapping of point in collection to point on plot
source1.SetXYMapping(p => p);

// Add the graph. Colors are not specified and chosen random
plotter.AddLineGraph(source1, 2, "Data row");

// Force everyting to fit in view
plotter.Viewport.FitToView();

// Start computation process in second thread
Thread simThread = new Thread(new ThreadStart(Simulation));
simThread.IsBackground = true;
simThread.Start();
}

private void Simulation()
{
int i = 0;
while (true)
{
Point p1 = new Point(i * i, i);
source1.AppendAsync(Dispatcher, p1);

i++;
Thread.Sleep(1000);

}
}
}

您想要的只是在模拟方法中。

source1.AppendAsync(Dispatcher, p1);

关于C#动态数据展示——更新折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23786603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com