首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Linq查询在LiveCharts2中构建LiveCharts2

从Linq查询在LiveCharts2中构建LiveCharts2
EN

Stack Overflow用户
提问于 2022-02-04 08:45:23
回答 1查看 184关注 0票数 0

我试图在我的WPF应用程序中看到PieCharts。有一个例子,它似乎运行良好。但是,我试图从linq查询中进行同样的操作,并且无法理解如何解决该方程。

下面是一个示例:

Xaml部分:

代码语言:javascript
复制
<lvc:PieChart x:Name="PieChart" LegendPosition="Right" Series="{Binding OnLoaded}" InitialRotation="-90"></lvc:PieChart>

和C#代码:

代码语言:javascript
复制
private async void OnLoaded()
        {
                IEnumerable<double> a = new List<double> { 1 };
                IEnumerable<double> b = new List<double> { 0 };
                IEnumerable<double> c = new List<double> { 0 };

                IEnumerable<ISeries> Series = new List<ISeries>
                {
                    new PieSeries<double> { Values = a, Name = "a" },
                    new PieSeries<double> { Values = b, Name = "b" },
                    new PieSeries<double> { Values = c, Name = "c"  }
                };
                LivePieChart3.Series = Series;
            }
        }

那么我也试图从linq做同样的事情,但是我认为这是完全错误的?:

代码语言:javascript
复制
private void InitializePieChart()
{
  List<ISeries> projectNumbers = this.Projects.Select(x => new List<ISeries>
  {
   new PieSeries<double> 
   {
    Values = x.Revenue,
    Name = x.ProjectName,
   }
  });

  this.Series = new ObservableCollection<ISeries>(projectNumbers);
}

如何在new PieSeries<double>之后创建一个新的new List<ISeries>

这是我的模型:

代码语言:javascript
复制
  public class ProjectModel
  {
    public Guid Id { get; set; }
    public string ProjectName { get; set; }
    public string ProjectNumber { get; set; }
    public double Revenue { get; set; }
    public DateTime CreationDate { get; set; }

    public virtual ICollection<TaskModel> Tasks { get; set; }
  }

ViewModel项目:

代码语言:javascript
复制
private ObservableCollection<ProjectModel> projects;
public ObservableCollection<ProjectModel> Projects
{
  get => this.projects;
  set
  {
    this.projects = value;
    this.OnPropertyChanged();
  }
}

以下是LiveCharts2项目:https://github.com/beto-rodriguez/LiveCharts2

编辑:

关于阿什的建议,我收到以下意见:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 08:53:56

代码语言:javascript
复制
private void InitializePieChart()
{
    IEnumerable<ISeries> projectNumbers = this.Projects.Select(x => 
    new PieSeries<double> 
    {
        Values = new List<double> { x.Revenue },
        Name = x.ProjectName,
    });

    this.Series = new ObservableCollection<ISeries>(projectNumbers);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70983573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档