我創建了一個的UITableViewCell但設置的UITableView的來源時,我得到一個的NullReferenceException。Xamarin的iOS UITableView.Source的NullReferenceException
public partial class SessionOverviewViewController : UIViewController
{
public List<BaseSessionController> Sessions;
public SessionOverviewViewController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
tvTable.RegisterClassForCellReuse(typeof(SessionTableViewCell), "SessionCell");
SessionTableViewSource source = new SessionTableViewSource(Sessions);
tvTable.Source = source; //This line throws the Exception
}
}
的TableViewSource:
public class SessionTableViewSource : UITableViewSource
{
List<BaseSessionController> TableItems;
string CellIdentifier = "SessionCell";
public SessionTableViewSource(List<BaseSessionController> items)
{
TableItems = items;
}
public override nint RowsInSection(UITableView tableview, nint section)
{
return TableItems.Count;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
SessionTableViewCell cell = (SessionTableViewCell)tableView.DequeueReusableCell(CellIdentifier);
BaseSessionController friend = TableItems[indexPath.Row];
//---- if there are no cells to reuse, create a new one
if (cell == null)
{
//cell = new SessionTableViewCell(new NSString(CellIdentifier), friend.FriendName, new UIImage(NSData.FromArray(friend.FriendPhoto)));
cell = new SessionTableViewCell(new NSString(CellIdentifier), friend);
}
//cell.UpdateCellData(friend.UserName, new UIImage(NSData.FromArray(friend.FriendPhoto)));
return cell;
}
}
,細胞本身
public partial class SessionTableViewCell : UITableViewCell
{
public BaseSessionController Session;
public SessionTableViewCell (IntPtr handle) : base (handle)
{
}
public SessionTableViewCell(NSString cellId, BaseSessionController session) : base(UITableViewCellStyle.Default, cellId)
{
Session = session;
lblDate.Text = Session.Model.SessionStartTime.ToString("d");
}
}
希望有人可以看到我所犯的錯誤,並能幫助我。
在此先感謝
你可以調試並檢查GetCell或RowsInSection是否得到執行?或「源」不是null? – Darshana
btw,故事板或xib中是否有標識符爲「SessionCell」的單元格?我認爲這個問題 – Darshana
這兩種方法都沒有得到執行,我檢查'source'。它絕對不是null,UITableView出口也不爲空等。是的,我在Storyboard中設置標識符 –