我试图在我的WPF应用程序中看到PieCharts。有一个例子,它似乎运行良好。但是,我试图从linq查询中进行同样的操作,并且无法理解如何解决该方程。
下面是一个示例:
Xaml部分:
<lvc:PieChart x:Name="PieChart" LegendPosition="Right" Series="{Binding OnLoaded}" InitialRotation="-90"></lvc:PieChart>和C#代码:
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做同样的事情,但是我认为这是完全错误的?:
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>
这是我的模型:
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项目:
private ObservableCollection<ProjectModel> projects;
public ObservableCollection<ProjectModel> Projects
{
get => this.projects;
set
{
this.projects = value;
this.OnPropertyChanged();
}
}以下是LiveCharts2项目:https://github.com/beto-rodriguez/LiveCharts2
编辑:
关于阿什的建议,我收到以下意见:

发布于 2022-02-04 08:53:56
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);
}https://stackoverflow.com/questions/70983573
复制相似问题