Class.TableViewDataSource类型传递的对象不是从NSObject派生的?

时间:2018-01-15 23:11:22

标签: uitableview xamarin xamarin.ios

我得到"类型Class.TableViewDataSource传递的对象不是从NSObject"我执行以下操作时出错我正在尝试设置UITableView的数据源。

    viewdidload {
        tableView.DataSource = new TableViewDataSource(al);
    }
    class TableViewDataSource : IUITableViewDataSource
        {
            public ArrayList listOfSellers
            {
                get;
                set;
            }

            public TableViewDataSource(ArrayList al) {
                listOfSellers = al; 
            }
            public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
            {
                var cell = (SellerCell)tableView.DequeueReusableCell("cell", indexPath);
                cell.seller.Text = (string)listOfSellers[indexPath.Row];
                return cell;
            }

            public nint RowsInSection(UITableView tableView, nint section)
            {
                return listOfSellers.Count;
            }
        }

任何想法为什么会这样。

1 个答案:

答案 0 :(得分:0)

如果类派生自接口,则必须实现其父接口中定义的所有方法。

此处还需要disconnect, closeINativeObject中的方法来实施。

IDisposable

但是,通常我们使用public class TableViewDataSource : IUITableViewDataSource { public IntPtr Handle { get; } public void Dispose() { } } 代替。它派生自UITableViewDataSource,我们只需覆盖其中的方法。

IUITableViewDataSource