我正在使用这样的数据库结构:
item_id int
list_name string
category_name string
item_name string
qty int
price double
total_amt double
我正在尝试根据类别获取项目列表..(分组和&总和)
private ObservableCollection<shoppingitem> _purchased;
public ObservableCollection<shoppingitem> Purchased
{
get
{
return _purchased;
}
set
{
_purchased = value;
notifypropertychanged("Purchased");
}
}
public void budgetcategorywise()
{
var q = from shoppingItem p in db.Item1
group p by p.category_name into g
select new { category = g.Key, total = g.Sum(p => p.total_amt) };
Purchased=new ObservableCollection<shoppingitem>(q);
}
它给出了类型转换的错误。 现在的问题是我应该如何将此结果绑定到列表框。 它需要转换..?
我需要将ObservableCollection中的结果转换为与listbox绑定..
答案 0 :(得分:2)
您应该返回shoppingitem
的集合,而不是匿名类型!
只需将select new
替换为select new shoppingitem
,它就可以正常使用了!
答案 1 :(得分:0)
您对shoppingItem
进行分组,并尝试将聚合结果作为shoppingItem
列表返回。你应该在集合中返回一个命名类型是正确的,但我不认为它应该是shoppingItem
。只需使用一个简单的类来传输结果。像
class ShoppingItemSumDto
{
public string Name { get; set; }
public int Sum { get; set; }
}