【问题标题】:how to bind data to listbox in wp7wp7中如何将数据绑定到列表框
【发布时间】:2012-06-04 19:44:28
【问题描述】:

我正在将数据绑定到 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;

现在,错误是查询正常结果是完美的,但我无法将数据绑定到列表框。

【问题讨论】:

  • 您的 Listbox xaml 代码不清楚,请使用正确的代码编辑问题。还要给出jinal类的代码,它包含哪些成员。

标签: linq windows-phone-7 linq-to-objects


【解决方案1】:

查看您的代码示例:

  1. 请确保在绑定之前调用budgetcategorywise()
  2. 请将您的绑定更改为:

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

第二次更改的原因是您的代码在 Linq 列表生成中使用了 ToString() - 这意味着带有 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();
   }

【讨论】:

  • 是的,谢谢您的帮助。但结果不是我想要的。结果就像 {category ={category_name = milk},total =150}
  • 我希望在列表框中得到类似乳制品 150 的结果
  • 在这种情况下,在堆栈面板或网格中使用 2 个文本框,或者使用自定义转换器 - 可能值得查看 create.msdn.com 上的一些教程
猜你喜欢
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
相关资源
最近更新 更多