我有一个要从我的UITableViewCell
类传递给我的UITableView
的模型,如下所示
this.Source = new MyTableSource(ListOfItems);
我的ITEM模型只有两个值
public string Id { get; set; }
public string Title { get; set; }
我的UITableViewSource
是以下
public class AllSource : UITableViewSource
{
List<ITEM> ITEMS = new List<ITEM>();
public AllSource(List<ITEM> _items)
{
ITEMS = _items;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var cell = tableView.DequeueReusableCell("AllCell") as AllCell;
if (cell == null)
{
cell = new AllCell();
var views = NSBundle.MainBundle.LoadNib(AllCell.Key, cell, null);
cell = Runtime.GetNSObject(views.ValueAt(0)) as AllCell;
}
var LINK = ITEMS[indexPath.Row];
cell.BindCell(LINK);
return cell;
}
public override nint RowsInSection(UITableView tableview, nint section)
{
return HomeDisplay.Count;
}
}
我的cell.BindCell(LINK)
是以下
public void BindCell(ITEM link)
{
TitleText.Text = Link.Title;
}
我还使用“ RowSelected”,如下所示
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
tableView.DeselectRow(indexPath, true);
}
这可以,但是
我想将
string
格式的唯一ID附加到Cell
,因此当我触发RowSelected
时,我会得到string
的ID 唯一地标识所选项目的ID(不是indexPath)?
最初,我以为只是隐藏标签,但这似乎不是一个正确的选择。
这可能吗?
答案 0 :(得分:1)
如果我认为您模型中的public string Id { get; set; }
是唯一的Id
,那么您可以像下面这样得到:
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
tableView.DeselectRow(indexPath, true);
//Here you can get your Id of selected row
string selectedId = ITEMS[indexPath.Row].Id;
}