【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<object>
            if (value is ReadOnlyObservableCollection<object> 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"
<local:GroupSum x:Key="GroupSum" />

前端

<CollectionViewSource x:Key="CollectionViewSource"  Source="{Binding Path=ResultList,Mode=TwoWay}" >
    <CollectionViewSource.GroupDescriptions>
        <PropertyGroupDescription PropertyName="Describe"/>
    </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

Describe为分组字段

<TextBlock FontWeight="Bold" Margin="10,0,0,0">
     <TextBlock.Text>
        <Binding Converter="{StaticResource GroupSum}" Path="Items" ConverterParameter="ItemCount"  StringFormat="占用内存:{0}" />
    </TextBlock.Text>
</TextBlock>

相关推荐

  1. C#】计算CollectionViewSource分组总和

    2024-02-09 04:34:01       51 阅读
  2. 计算字符出现次数【C语言】

    2024-02-09 04:34:01       54 阅读
  3. Pandas实战100例 | 案例 74: 分组计算平均值

    2024-02-09 04:34:01       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-09 04:34:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-09 04:34:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-09 04:34:01       87 阅读
  4. Python语言-面向对象

    2024-02-09 04:34:01       96 阅读

热门阅读

  1. Linux命令-badblocks命令(查找磁盘中损坏的区块)

    2024-02-09 04:34:01       48 阅读
  2. jmeter-06常用的几种断言方式

    2024-02-09 04:34:01       55 阅读
  3. 接口测试:Jmeter插件与分布式

    2024-02-09 04:34:01       52 阅读
  4. 18. 四数之和(力扣LeetCode)

    2024-02-09 04:34:01       62 阅读
  5. 【学习笔记】【内核】offsetof 的用法

    2024-02-09 04:34:01       43 阅读
  6. Kotlin手记(一):基础大杂烩

    2024-02-09 04:34:01       52 阅读
  7. C++服务器开发(3):创建服务器主循环

    2024-02-09 04:34:01       57 阅读
  8. LeetCode第1544题 - 整理字符串

    2024-02-09 04:34:01       52 阅读