2013-08-17 2 views
2

C# Windows 응용 프로그램을 Mac으로 이식하려고하는데 문자열 묶음이있는 테이블보기를 채우려 고합니다. 표보기에는 나에게 좋은 두 개의 열이있는 것 같지만 셀, 행, 열을 액세스하거나 항목을 추가하는 방법을 모르겠습니다. Windows에서 나는 다음과 같이했습니다 :Xamarin에서 테이블 뷰를 채우는 방법?

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

Xamarin에서 나는 무엇을 할 수 있습니까? 테이블 뷰에 추가하려면 다른 뷰가 필요합니까?

답변

3

테이블에 대한 NSTableViewDataSource를 만들어야합니다. 일반적으로 NSTableViewDataSource에서 상속 한 사용자 지정 클래스를 만든 다음이 메서드를 재정의합니다.

사용자 지정 Source 클래스의 인스턴스를 TableView의 DataSource 속성에 할당합니다. DataSource에는 데이터가 무엇이든간에 기반으로 채우는 내부 데이터 구조 (예 : List 또는 좀 더 복잡한 항목)가있을 것입니다. 그런 다음 등, 데이터의 길이에 따라 적절하게 대응할 수있는 데이터 소스 방법을 사용자 정의합니다

은의이 데이터는 간단한 문자열 []라고 가정하자 : 나는 믿고있어

// 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); 
} 
+0

첫 번째 방법 반환하는 'table.RowCount'. 두 번째 방법을 설정하는 방법을 보여 주시겠습니까? – iwatakeshi

+0

또는 C#을 제외하고는 다음과 같은 내용일까요? [Mac 용 Table View 프로그래밍 가이드] (https://developer.apple.com/library/mac/documentation/cocoa/Conceptual/TableView/PopulatingCellTables/PopulatingCellTables.html) – iwatakeshi

+1

좀 더 자세한 내용을 포함하도록 예제를 확장했습니다 – Jason

관련 문제