数据显示在我的UITableView上的冗余显示

时间:2012-05-09 00:32:47

标签: sqlite uitableview xamarin.ios

我在使用SQLite作为数据库填充monotouch中的表时遇到问题。我的问题是它只选择插入的最后一个数据,并返回与所选表格中的数据一样多的数据。

离。 data = iPhone,表格中的数据数量= 30。

它将表中的iPhone返回30次。

以下是代码:

MainViewController

public override void ViewDidLoad ()
    {
      base.ViewDidLoad ();

      LoadToolbarButtons ();
      LoadNavigationBarButtons ();

      BL.Products MyProducts = new BL.Products();
      List<Products> productList = new List<Products>();

      POSDB.InitPOSDatabase ();
      POSDB.GetAllProducts (productList, MyProducts);

      tblProductList.Source = new ProductListDataSource(productList);
      tblProductList.Delegate = new ProductListDelegate();
    }

数据源

public class ProductListDataSource : UITableViewSource
{
public List<Products> ProductList = new List<Products>();
public BL.Products myProducts = new BL.Products();

public ProductListDataSource(List<Products> productList):base()
{
    this.ProductList = productList;
}

#region implemented abstract members of MonoTouch.UIKit.UITableViewSource
public override int RowsInSection (UITableView tableview, int section)
{
    if (ProductList.Count == 0) 
    {
        UIAlertView alert = new UIAlertView ("No Records!", "Please add some items to your table.", null, "OK", null);
        alert.Show ();
    }

    return ProductList.Count;
}

public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
    string cellIdentifier = "Cell";
    UITableViewCell cellProduct = tableView.DequeueReusableCell(cellIdentifier);

    if (cellProduct == null)
    {
    cellProduct = new UITableViewCell(UITableViewCellStyle.Value1,cellIdentifier);
    }

    var products = this.ProductList[indexPath.Row];
    cellProduct.TextLabel.Text =string.Format("({0}) {1}", products.ProductID, products.ProductName);
    cellProduct.DetailTextLabel.Text = "$" + System.Convert.ToString(products.Price);

    return cellProduct;
}
#endregion

}

我的代码有问题吗? 提前谢谢!

0 个答案:

没有答案