在Blazor Radzen中配置ChartComponent统计各项目状态数量
实现按项目状态统计的Radzen柱状图
1. 先处理统计数据
首先需要把Projects集合按projectStatus分组统计数量,还要确保5种状态全部显示(哪怕对应数量为0)。在Blazor组件的代码部分添加以下逻辑:
// 定义所有需要展示的项目状态 private readonly List<string> _allProjectStatuses = new List<string> { "open", "closed", "in progress", "deleted", "new" }; // 存储统计后的状态-数量数据 private IEnumerable<object> _statusStatistics; protected override void OnInitialized() { base.OnInitialized(); // 分组统计,通过左连接确保所有状态都被包含 _statusStatistics = from status in _allProjectStatuses join groupedProject in Projects.GroupBy(p => p.projectStatus) on status equals groupedProject.Key into statusGroup from groupItem in statusGroup.DefaultIfEmpty() select new { Status = status, ProjectCount = groupItem?.Count() ?? 0 }; }
如果你的projectStatus是枚举类型,把_allProjectStatuses替换成枚举值的名称列表即可:
private readonly List<string> _allProjectStatuses = Enum.GetNames(typeof(ProjectStatus)).ToList();
2. 配置RadzenChart组件
直接使用处理好的统计数据配置柱状图,X轴绑定状态名称,Y轴绑定对应数量:
<RadzenChart> <!-- X轴:类别轴,展示5种项目状态 --> <RadzenCategoryAxis Data="@_statusStatistics" Property="Status" /> <!-- Y轴:数值轴,显示项目数量 --> <RadzenValueAxis Title="项目数量" /> <!-- 柱状图系列,绑定统计数据 --> <RadzenBarSeries Data="@_statusStatistics" CategoryProperty="Status" ValueProperty="ProjectCount" /> <!-- 可选:底部添加图例 --> <RadzenLegend Position="LegendPosition.Bottom" /> </RadzenChart>
关键说明
- 左连接逻辑保证了即使某个状态下没有项目,X轴依然会显示该状态,Y轴数量为0,不会出现缺失状态的情况。
- 确保已经在项目中正确引入Radzen组件的命名空间(通常是
@using Radzen)。
内容的提问来源于stack exchange,提问作者Baldie47
相关产品推荐
相关产品推荐

