【问题标题】:Creating ListView from a List of class objects returns same object instead of all C# UWP从类对象列表创建 ListView 返回相同的对象而不是所有 C# UWP
【发布时间】:2018-03-22 13:24:50
【问题描述】:

我正在尝试列出列表的项目,但我反复显示列表的第一行。该列表应包含三个不同的产品行。相反,ListView 显示相同的第一行 3 次。

我创建这样的列表:

        List<ProductsNumber> ProductsNumberList = new List<ProductsNumber>();
        ProductsNumber _ProductsNumber = new ProductsNumber();
        for (int i= 0; i <= otherlist.Count - 1; i++)

        {
            _ProductsNumber.ProdId = otherlist[i].ProdName.ToString();
            _ProductsNumber.ProductsNumber = (DB_ProductList.Where(Product => Product.ProdId == otherlist[i].ProdName)).Count();
            ProductsNumberList.Add(_ProductsNumber);
        }

        //listView
        listBox.ItemsSource = ProductsNumberList;//Binding data to LISTBOX   

这是用于填充 List 的类:

 public class ProductsNumber
    {
        public string ProdId { get; set; }
        public int ProductsNumber { get; set; }
    }

如果你有兴趣:

otherlist

当我在列表视图中列出它时效果很好。

DB_ProductList 的定义如下:

ReadAllProductsList dbproduct = new ReadAllProductsList();
        DB_ProductList = dbdproduct.GetAllProducts();
        List<Product> ProductList = new List<Product>();
        ProductList = DB_ProductList.ToList();

而且效果也很好。 无论如何,我在 ListView 中得到了正确的 ProductNumber。是 ProdId 给我带来了问题。我在 ListView 中确实得到了正确的迭代次数,但它们都是相同的。 ListView 应该列出所有产品,而不是重复相同的产品。

有什么线索吗?

我猜在填充 List 时,同一条记录被插入了 3 次。但为什么呢?

【问题讨论】:

    标签: c# list class listview uwp


    【解决方案1】:

    哦,我解开了这个谜。 简单地说,移动了

    ProductsNumber _ProductsNumber = new ProductsNumber();
    

    for 内的行 循环,它现在工作正常。 傻我。

    【讨论】:

      【解决方案2】:

      你可以试试写“ProductsNumber _ProductsNumber = new ProductsNumber();”进入循环?

      【讨论】:

        猜你喜欢
        • 2021-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-18
        • 1970-01-01
        • 2012-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多