WPF Converter无法访问基本属性

时间:2016-09-20 08:44:17

标签: c# wpf converter


我试图获得像WPF DataGrid Grouping with sums and other fields这样的东西来总结一组中物品的'数量'属性。但它在foreach循环中抛出异常,它无法将'items'转换为我的Type('OrderItem',我认为其中的项应该是......)
C#

 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {

        if (value is ReadOnlyObservableCollection<Object>)
        {
            var items = ((ReadOnlyObservableCollection<Object>) value);
            Decimal total = 0;
            foreach (OrderItem gi in items )
            {
                total += gi.quantity;
            }
            return total.ToString();

        }
        return "0";
    }

XAML

<ControlTemplate TargetType="{x:Type GroupItem}">
                                        <Expander>
                                            <Expander.Header>
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Text="{Binding Path=Name}" Margin="5"/>
                                                    <TextBlock Text="Count" Margin="5" />
                                                    <TextBlock Text="{Binding Path=Items, Converter={StaticResource additionConverter}}" Margin="5"/>
                                                </StackPanel>
                                            </Expander.Header>
                                            <ItemsPresenter />
                                        </Expander>
                                    </ControlTemplate>

和资源

<local:AdditionConverter x:Key="additionConverter" />

如何访问'value'的基本元素?我打了一个断点,它就在那里。 对不起,如果我搞砸了什么,我是WPF的新手。

1 个答案:

答案 0 :(得分:0)

替换它:

   foreach (OrderItem gi in items )
        {
            total += gi.quantity;
        }

with:

   foreach (CollectionViewGroup group in items)
     {
        foreach(OrderItem item in group.Items)
        {
           total += item.quantity;
        } 
     }

告诉你这是否解决了你的问题。