【C#】计算CollectionViewSource分组后某列总和

问题

利用CollectionViewSource进行分组后发现原始只有计算机行数的属性,但并没有计算自定义某列数据总和的方法,以下是解决方案。

解决方案

【代码】

internal class GroupSum : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            long total = 0;
            // DataGrid分组后对应的组及组内元素CollectionViewGroup.Items 类型是ReadOnlyObservableCollection
            if (value is ReadOnlyObservableCollection items)
            {
                foreach (var item in items)
                {
                    var fileItem = item as FileItem;
                    total += fileItem.Size;
                }
            }
            //return Math.Round(total, 2).ToString();
            return ConvertBytesToSize(total);
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    } 
  

使用

加载

xmlns:local="clr-namespace:XXXX.ViewModel"

前端


    
        
    

Describe为分组字段


     
        
    

你可能感兴趣的:(C#,c#,WPF)