GetCell 方法忽略更改的值

GetCell method ignores changed values

我用 GetCellRowsInSection 和其他所需方法设置了 UITableView对于我的 UITableView。这是我的代码:

using UIKit;
...
    
namespace ...
{
    public partial class (className) : UIViewController, IUITextFieldDelegate, IUITableViewDataSource, IUITableViewDelegate

    bool test = false;

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        table.ReloadData();
        table.DataSource = this;
        table.Delegate = this;

        test = true;
    }

    ...

    public nint RowsInSection(UITableView tableview, nint section)
    {
        return 2;
    }

    public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
    {
        var cell = tableView.DequeueReusableCell("cell") as Cell;

        bool selected = test;

        cell.Setup(selected);
        return cell;
    }

}

我试图做的是在 GetCell 中设置单元格时检查变量的更改值。但是,似乎GetCell方法忽略了变量test的变化值,所以我的问题是如何访问变化后的变量在 ViewDidLoad.

  1. 修改test后调用table.ReloadData();,因为reloadData用于触发delegate中的所有方法包括GetCell.

    
    table.DataSource = this;
    table.Delegate = this;
    test = true;
    table.ReloadData();
    
  2. 您的代码不是cell复用,请参考正确的方法here

     //register
     table.RegisterClassForCellReuse (typeof(Cell), "cell");
    
    
     public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
     {
         //cell reuse 
         var cell = (Cell) tableView.DequeueReusableCell ("cell", indexPath);
         if (cell == null)  cell = new Cell("cell");
    
         bool selected = test;
    
         cell.Setup(selected);
         return cell;
     }