0

私は次のようなデータベース構造で作業しています:

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 に変換してリストボックスにバインドする必要があります..

4

2 に答える 2

2

shoppingitem匿名型ではなく、のコレクションを返す必要があります。

をに置き換えるだけselect newで、select new shoppingitem正常に動作するはずです。

于 2012-06-04T12:02:31.020 に答える
0

s をグループ化し、集計結果を s のリストとしてshoppingItem返そうとします。コレクションで名前付きの型を返すのは正しいですが、そうすべきではないと思います。単純なクラスを使用して結果を転送するだけです。お気に入りshoppingItemshoppingItem

class ShoppingItemSumDto
{
    public string Name { get; set; }
    public int Sum { get; set; }
}
于 2012-06-04T17:25:21.523 に答える