如何向实时图表馅饼添加值


private void MapPie()
{
    List<string> allValues = new List<string>();
    var NameLables = new List<string>();
    CON.ConnectionString = ConfigurationManager.ConnectionStrings["conDB"].ConnectionString;
    CON.Open();
    CMD = new SqlCommand("select top (5) * from tblRecordDefects order by qty desc", CON);
    RDR = CMD.ExecuteReader();
    while (RDR.Read())
    {
        allValues.Add(Convert.ToString(RDR["qty"]));
        var day = RDR.GetString(RDR.GetOrdinal("dname"));
        NameLables.Add(day);
    }
    Func<ChartPoint, string> labelPoint = chartPoint =>
    string.Format("{0} ({1:P})", chartPoint.Y, chartPoint.Participation);
    DataContext = this;
}

我怎样才能RDR["qty"]RDR.GetString(RDR.GetOrdinal("dname"))到这里string.Format("{0} ({1:P})", chartPoint.Y, chartPoint.Participation);.我已经尝试了不同的方法,例如toArray()和所有方法,但没有奏效。

奇怪的是,

为什么您将数据保存在两个单独的列表中,而不是两个元组,但无论如何,这里有两个版本的代码,一个像现在一样将其保存在两个列表中,另一个没有。

private void MakeData()
    {
        List<string> allValues = new List<string>();
        var NameLables = new List<string>();
        //Simulate the SQL query by looping over X times
        for (int i = 0; i < 5; i++)
        {
            allValues.Add((i + 1).ToString());
            NameLables.Add(DateTime.Today.AddDays(i).ToString("dd-MM-yyyy"));
        }
        seriesCol = new SeriesCollection();
        seriesCol.AddRange(Enumerable.Range(0, allValues.Count).Select(x => new PieSeries { Title = NameLables[x], Values = new ChartValues<ObservableValue> { new ObservableValue(double.Parse(allValues[x])) } }));
    }

第二个版本

private void MakeData2()
    {
        var temp = new SeriesCollection();
        for (int i = 0; i < 5; i++)
        {
            var dname = DateTime.Today.AddDays(i).ToString("dd-MM-yyyy");
            var qty = i;
            temp.Add(new PieSeries { Title = dname, Values = new ChartValues<ObservableValue> { new ObservableValue(qty) } });
        }
        seriesCol = temp;
    }

在这两个示例中,视图模型还具有一个名为 seriesCol 的属性

private SeriesCollection _seriesCol;
    public virtual SeriesCollection seriesCol
    {
        get { return _seriesCol; }
        set
        {
            Set(() => seriesCol, ref _seriesCol, value);
        }
    }

您查看然后绑定到该

<lvc:PieChart Grid.Row="1" Series="{Binding Path=seriesCol}"/>

相关内容

  • 没有找到相关文章

最新更新