2

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

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

我可以在 Xamarin 中做什么?我需要另一个视图来添加到表视图吗?

4

1 回答 1

3

您需要为您的表创建一个 NSTableViewDataSource。通常你会创建你自己的继承自 NSTableViewDataSource 的自定义类,然后重写这些方法

您将自定义 Source 类的实例分配给 TableView 的 DataSource 属性。您的 DataSource 可能会有一些内部数据结构(即,一个列表,或更复杂的东西),您可以根据您的数据填充这些数据结构。然后,您将自定义 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);
}
于 2013-08-17T22:24:44.213 回答