0

wp7のリストボックスにデータをバインドしています

これがコードです

              <ListBox x:Name="list_budget" Width="440">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Name="txtname" Text="{Binding category}"></TextBlock>

                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

//クラス関数

    public string[] jinal;

    public void  budgetcategorywise()
    {

        var q = from shoppingItem p in db.Item1
                group p by new { p.category_name } into g
                select new { category = g.Key, total = g.Sum(p => p.total_amt) `enter code here`}.ToString();

      jinal = q.toarray();
}

//コーディング

        list_budget.ItemsSource = App.Viewmod.jinal;

現在、エラーはクエリです。結果は完全ですが、データをリストボックスにバインドできません。

4

1 に答える 1

0

コードサンプルを見る:

  1. budgetcategorywise()バインディングを行う前に、必ず呼び出されるようにしてください
  2. バインディングを次のように変更してください。

     <TextBlock Name="txtname" Text="{Binding}"></TextBlock>
    

この2番目の変更の理由は、コードがToString()Linqリスト生成でaを使用しているためです。これは、categoryフィールドを持つクラスが文字列表現でフラット化されることを意味します。


バインディングにカテゴリフィールドを保持する場合は、次のようなリストアイテムのクラスを使用します。

   public class MyListItem
   {
       public string category { get;set; }
       public double total { get;set; }
   }

   public List<MyListItem> jinal;

   public void  budgetcategorywise()
   {

        var q = from shoppingItem p in db.Item1
                group p by new { p.category_name } into g
                select new MyListItem() { category = g.Key, total = g.Sum(p => p.total_amt) };

      jinal = q.ToList();
   }
于 2012-06-04T11:42:27.473 に答える