LiveCharts 饼图 (C# WinForms) - 在 datagridview 中更改值时更新数据

问题描述 投票:0回答:0

我无法理解如何将我的数据绑定到 Livecharts 饼图。

我想在饼图中显示我的数据网格视图,并在每次更改数据网格视图中的单元格值时更新它。

我将我的 datagridviewdata 保存在一个 ObservableCollection 中,并希望我的饼图进行调整。现在,我的所有图表所做的就是每次更改值时绘制一个具有不同颜色的新图表。

我能找到的最接近我的问题是这个,如何正确更新我的图表值? (实时), 不幸的是,这没有回答我的问题。

每次扩展我的列表时,我都会扩展我的 ObservableCollection:

private void btnAdd_Click(object sender, EventArgs e)   // Zeile Hinzufügen Button
        {
            dataGridViewAuswahl.Rows.Add();
            
            myData neueZeile = new myData();
            Global.ObservableData.Add(myData);

            UpdateElementsList();
        }

我的 ObservableCollection 由 CellValueChanged 事件更新:

private void DataGridViewAuswahl_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            
            if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
            {
                var currentRow = Global.ObservableData[e.RowIndex];

                switch (e.ColumnIndex)
                {
                    case 0:
                        currentRow.Element = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                        break;

                    case 1:
                        currentRow.Value = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
                        break;

                    default:
                        break;
                }
             UpdateElementsList();
            }
        }

现在我认为我的问题出在我的更新方法上,它可能没有正确地将我的数据绑定到饼图。这是我无法理解如何正确绑定它的地方。

private void UpdateElementsList()
        {
            Global.seriesList.Clear();
            foreach (var data in Global.ObservableData)
            {
                var series = new PieSeries<int>
                {
                    Values = new ChartValues<int> { data.Value }, 
                    Name = daata.Element,
                    InnerRadius = 25,
                    Stroke = null
                };
                Global.seriesList.Add(series);
            }
            pieChart1.Series = Global.seriesList;
        }

对于上下文,我的数据是这样的:

public class mydata
    {
        public string Element { get; set; }
        public int Value { get; set; }
    }
c# data-binding visualization pie-chart livecharts
© www.soinside.com 2019 - 2024. All rights reserved.