Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对绑定列表元素求和_C#_.net_Binding - Fatal编程技术网

C# 对绑定列表元素求和

C# 对绑定列表元素求和,c#,.net,binding,C#,.net,Binding,这个问题是这个问题的后续问题 基本上,我有一个网格,其中包含几个名为Details的对象 它们都是使用实体框架创建的 绑定在网格中运行良好,甚至每行上的自定义属性SubTotal都已正确绑定,一切正常 我唯一想知道的是,在窗口底部有一个文本框显示总数 datagrid的源是一个绑定列表,因此我将此列表指定为文本框的数据上下文,并为绑定应用了一个转换器,代码如下: public object Convert(object value, Type targetType, object par

这个问题是这个问题的后续问题

基本上,我有一个网格,其中包含几个名为
Details
的对象

它们都是使用实体框架创建的

绑定在网格中运行良好,甚至每行上的自定义属性
SubTotal
都已正确绑定,一切正常

我唯一想知道的是,在窗口底部有一个文本框显示总数

datagrid的源是一个
绑定列表
,因此我将此列表指定为文本框的
数据上下文
,并为绑定应用了一个转换器,代码如下:

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
       BindingList<Detail> sDets = (BindingList<Detail>)value;

       return sDets.Sum(x => x.Quantity*x.Price);
    }
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性) { BindingList sDets=(BindingList)值; 返回sDets.Sum(x=>x.Quantity*x.Price); } 然而,这不起作用。也就是说,编辑列表时,文本框中的更改不会更新


我认为BindingList应该处理这个问题,不是吗?

您需要添加一个更改事件,让它知道有些不同。在我看来,在这里忘记绑定比较容易,直接处理ListChanged事件就可以了。

好的,我认为它在性能方面会更重,但我想这很好。