使用数组填充UITableView

时间:2014-09-02 17:54:20

标签: c# ios uitableview xamarin.ios xamarin

UITableView只显示数组的第二个值......我的错误在哪里?

public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath) {

UITableViewCell cell = tableView.DequeueReusableCell(cellID);

        if (cell == null) {
            cell = new UITableViewCell (UITableViewCellStyle.Subtitle, cellID);
        }

string firstValue = "Hello"
string secondValue = "Bye"

string[] concat = {firstValue, secondValue};

        foreach(string op in concat){
                cell.TextView.Text = op;
        }

return cell;}

2 个答案:

答案 0 :(得分:2)

您正在对同一个变量进行多次分配,因此最后一次分配将覆盖以前的任何分配。要附加文字,您可以使用+=运算符

foreach(string op in concat){
        cell.TextView.Text += op;
}

答案 1 :(得分:0)

foreach语句将循环遍历数组中的每个字符串,并将单元格的textView的text属性设置为当前循环的字符串。

尝试:

public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath) {
UITableViewCell cell = tableView.DequeueReusableCell (cellID);

if (cell == null) {
    cell = new UITableViewCell (UITableViewCellStyle.Subtitle, cellID);
}

string firstValue = "Hello"
string secondValue = "Bye"

string[] concat = {firstValue, secondValue};

foreach(string op in concat){
    cell.TextView.Text += op;
}

return cell;

}

这会将数组中的每个字符串连接到单元格的textView文本。因此它将导致“Hello Bye”。


编辑:如果您想在新行上使用每个数组值:

 public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath) {
    UITableViewCell cell = tableView.DequeueReusableCell (cellID);



if (cell == null) {
    cell = new UITableViewCell (UITableViewCellStyle.Subtitle, cellID);
}

string firstValue = "Hello"
string secondValue = "Bye"

string[] concat = {firstValue, secondValue};

cell.TextView.Text = concat[indexPath!.row];

return cell;

}