使用UITableViewDataSource在MonoTouch中填充简单的UITableView - 如何使用UITableViewDataSource

use*_*500 8 c# uitableview xamarin.ios ios

到目前为止,我很喜欢MonoTouch,但是一旦你通过了几门初学者课程,就会发现缺少文档和样本.

我正在努力解决在MonoTouch中填充简单UITableView的简单概念.我已经看到了使用自定义单元格执行此操作的示例,并使用不同的信息广泛地自定义列表,但我只是在寻找如何实现这一简单事情的最低限度.我是一名专业的.NET开发人员,对iOS很新,所以我仍然围绕着它的工作原理.

我只想要以下内容.创建项目列表将该项目列表分配给UITableView以允许用户滚动列表.寻找一个非常简单的例子.

我正在努力的最重要的事情是创建一个UITableViewDataSource对象.它是抽象的,所以我无法创建它的实例.我可以创建自己的继承它的类,但我正在寻找框架中的具体实现,而无需创建自己的实现.我是不是被.NET宠坏了,必须为它创建一个新类,或者它是否存在于Framework中的某个地方而我却找不到它?

[答案在这里] 我找到了答案,但StackOverflow不会让我以低于100的声誉回答我自己的问题,或者除非我等待8个小时,否则我不愿意这样做.答案如下:

我创建了以下继承UITableViewSource的类.要求这样做.GetCell控制如何在表格上呈现单元格.

创建一个这样的实例并传入要填充的字符串列表.

这个例子来自(我稍微修改过)我正在阅读Wrox出版社的书 - "使用MonoTouch和.NET C#的专业iPhone编程"

public class TableViewSource : UITableViewSource
{
    private List<string> rows;

    public TableViewSource (List<string> list) 
    { 
            rows = list; 
    }

    public override int RowsInSection (UITableView tableview, int section) 
    { 
        return rows.Count; 
    }

    public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
    {  
        UITableViewCell cell = new UITableViewCell(UITableViewCellStyle.Default,"mycell"); 
        cell.TextLabel.Text = rows[indexPath.Row];
        return cell;
    } 
}
Run Code Online (Sandbox Code Playgroud)

将以下代码放在屏幕上的ViewDidLoad中.

var list = new List<String>()
{   
    "San Francisco",    
    "Buenos Aires", 
    "São Paulo"
};

TableViewSource tableData = new TableViewSource(list);
this.tblTrips.Source = tableData;
Run Code Online (Sandbox Code Playgroud)

这给了我正在寻找的东西,而无需深入了解MonoTouch.Dialog

pou*_*pou 2

UITableView,以及关联的委托和数据源类型,不是一个非常友好的 API - 对于典型的 .NET 开发人员来说更是如此。有时需要它,但在大多数情况下,您会想要使用更简单的东西。

创建项目列表 将该项目列表分配给 UITableView 以允许用户滚动列表。寻找一个非常非常简单的例子。

这似乎符合MonoTouch.Dialog的目标。该程序集现在随 MonoTouch 一起提供,但您可以在 github 上找到示例源代码

Xamarin 的文档网站还提供了使用 MonoTouch.Dialog 的教程,并且还提供了一个不错的视频