2

C# Windows アプリケーションを Mac に移植しようとしていますが、テーブル ビューに一連の文字列を入力しようとして行き詰まっています。テーブル ビューには 2 つの列があるようですが、セル、行、列にアクセスしたり、アイテムを追加したりする方法がわかりません。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 に答える