使用Xamarin iOS将Firebase数据添加到Tableview

问题描述

我是使用Xamarin开发iOS的新手。我正在尝试将实时Firebase数据库中的数据加载到表视图中。目前我的代码

public async override void ViewDidLoad()
    {
        base.ViewDidLoad();
        TestButton.TouchUpInside += TestButton_TouchUpInside;

        //List<string> names = new List<string>
        //{
        //    "Line 1","Line 2"
        //};
        //tbl_tran.source = new TranTableViewSource(names);

        List<Tran> all = await FirebaseHandle.getInstance().GetAllTrans();
        tbl_tran.source = new TranTableViewSource(new List<string>
        {
            all[0].Descript.ToString()
        });
        TestLabel.Text = all[0].Descript.ToString();
    }

TestLabel用正确的值填充,但是表没有填充,所以我知道我的firebase部分运行正常。此外,如果取消注释字符串列表,则表视图将填充第1行和第2行。作为参考,我附加了视图源类和getAllTrans()方法。我不确定是否有倾听者或我需要的东西。将我的Firebase数据放入表视图的任何信息将不胜感激。

public class TranTableViewSource : UITableViewSource
{

    List<String> names;

    public TranTableViewSource(List<string> names)
    {
        this.names = names;
    }

    public override UITableViewCell GetCell(UITableView tableView,NSIndexPath indexPath)
    {
        var cell = new UITableViewCell(UITableViewCellStyle.Default,"");
        cell.TextLabel.Text = names[indexPath.Row];

        return cell;
    }

    public override nint RowsInSection(UITableView tableview,nint section)
    {
        return names.Count;
    }

}

public async Task<List<Tran>> GetAllTrans()
    {
        return (await firebase
          .Child("Tran")
          .OnceAsync<Tran>()).Select(item => new Tran
          {
              Descript = item.Object.Descript,Amount = item.Object.Amount,IsMatt = item.Object.IsMatt,Date = item.Object.Date
          }).ToList();
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)