我试图获得像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的新手。
答案 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;
}
}
告诉你这是否解决了你的问题。