Мы разрабатываем приложение WPF C# для Visual Studio 2019. Оно имеет диаграмму, которая отображает 300 линий * 10000 точек одновременно. Конечно, данные действительно большие, обновление происходит очень медленно. Позвольте мне показать наш пример кода.
private System.Diagnostics.Stopwatch sw = new Stopwatch();
~~~Abbreviated~~~~~~~
sw.Start();
for(int i=0;i<300;i++){
chart1.Series[i].Points.DataBindY(my1Darray)
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
Мой секундомер возвратился через 8000 мсек c ... Мы пришли к выводу, что метод DataBind не удовлетворяет нашим требованиям.
В качестве следующей идеи мы попытались использовать AddY (Object []) метод .
object[] myObject = new object[1];
for(int i=0; i<300;i++){
myObject[i] = "42"; //Assign user-defined value
chart1.Series[i].Points.AddY(myobject[0]);
}
Работало нормально. ![Result](https://i.stack.imgur.com/ORgkz.png)
Но когда мы сделали такую небольшую модификацию,
object[] myObject = new object[1];
for(int i=0; i<300;i++){
myObject[i] = "1,2"; //Assign user-defined value
chart1.Series[i].Points.AddY(myobject[0]);
}
Очень странно ... строка была на "12". Я надеялся, что строка была ... 2,1,2,1,2,1 ![enter image description here](https://i.stack.imgur.com/Ya5IE.png)
Мы также сделали еще одну модификацию, такую как
object[] myObject = new object[2];
for(int i=0; i<300;i++){
myObject[0] = "56"; //Assign user-defined value
myObject[1] = "67";
chart1.Series[i].Points.AddY(myobject);
}
Сообщение об ошибке «Вы можете установить только точку yValue-1 для этого Datapoint (имя параметра: yValue)».
Мы находимся над головой !! Мы хотели бы добавить несколько точек одновременно, но не могли ... У кого-нибудь есть хорошее решение? Было бы полезно поделиться примером, в котором используется метод AddY (Object []).