如何在Xamarin中填充表视图?

时间:2013-08-17 21:49:36

标签: c# macos tableview xamarin cells

我正在尝试将C#Windows应用程序移植到Mac,但我不得不尝试用一堆字符串填充表格视图。表视图似乎有两列,这对我有好处,但我不知道如何访问单元格,行,列或添加项目。在Windows中,我做了类似的事情:

foreach(var item in items)
{
    somelistbox.Items.Add(item)
}

我在Xamarin可以做些什么?我是否需要另一个视图才能添加到表格视图?

1 个答案:

答案 0 :(得分:3)

您需要为表创建NSTableViewDataSource。通常,您将创建自己的自定义类,该类继承自NSTableViewDataSource,然后覆盖这些方法

您将自定义Source类的实例分配给TableView的DataSource属性。您的DataSource可能会根据您的数据填充一些内部数据结构(即List,或更复杂的内容)。然后,您将自定义DataSource方法,以根据数据的长度等进行适当的响应。

我们假设您的数据是一个简单的字符串[]:

// populate this in constructor, via service, setter, etc - whatever makes sense
private string[] data;

// how many rows are in the table
public int NumberOfRowsInTableView(NSTableView table)
{
  return data.length;
}

// what to draw in the table
public NSObject ObjectValueForTableColumn (NSTableView table, NSTableColumn col, int row)
{
  // assume you've setup your tableview in IB with two columns, "Index" and "Value"

  string text = string.Empty;

  if (col.HeaderCell.Title == "Index") {
text = row.ToString();
  } else {
    text = data [row];
  }

  return new NSString (text);
}