Mostrar Datos en un UITableView con MonoTouch

 El mostrar datos en una tabla es muy necesario para una gran mayoría de aplicaciones, por lo cual decidí crear este post, donde veremos como mostrar los datos en un control UITableView.
El primer paso es crear un repositorio de datos, que lo pueden realizar leyendo los datos desde una base de datos o como lo haremos en el presente ejemplo desde una lista de nombres de ciudades. De tal manera crearemos una lista que contenga los nombres de las ciudades, esta lista estará declarada en el método ViewDidLoad del controlador de nuestra vista:
List<string> _listaCiudades = new List<string> ();
_listaCiudades.Add ("Cochabamba");
_listaCiudades.Add ("Buenos Aires");
_listaCiudades.Add ("Paris");
_listaCiudades.Add ("New York");
_listaCiudades.Add ("Tokio");
_listaCiudades.Add ("Caracas");
_listaCiudades.Add ("CD. Juarez");
_listaCiudades.Add ("Moscu");
_listaCiudades.Add ("Cupertino");
_listaCiudades.Add ("Medellin");
_listaCiudades.Add ("Madrid");

Luego abriremos en .xib en Xcode, para crear el control y su respectivo outlet. Para nuestra aplicacion, el nombre de nuestro outlet sera “tblTableCiudades”:

Después crearemos una clase llamada TableViewDataSource que heredara de la clase UITableViewSource. Esta clase nos proveerá los métodos y personalización necesaria para llenar nuestros datos en el control. La clase es como sigue:
using MonoTouch.UIKit;
using System.Drawing;
using System;
using MonoTouch.Foundation;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace Tabla
{
public class TableViewDataSource : UITableViewSource
{
static NSString kCellIdentifier = new NSString ("MyIdentifier");
private List<string> list;
public TableViewDataSource (List<string> _list)
{
this.list = _list;
}
public override int RowsInSection (UITableView tableview, int section)
{
return list.Count;
}
public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
UITableViewCell cell = tableView.DequeueReusableCell (kCellIdentifier);
if (cell == null) {
cell = new UITableViewCell (UITableViewCellStyle.Default, kCellIdentifier);
}
cell.TextLabel.Text = list [indexPath.Row];
return cell;
}
}
}

Ya con la clase creada, en nuestro controlador crearemos el enlace con los datos, a través de la siguiente linea, que estará ubicada debajo de la creación de nuestra lista de ciudades en el método ViewDidLoad:
tblTableCiudades.Source = new TableViewDataSource (_listaCiudades);

Y listo, con eso tenemos una tabla que muestra nuestras ciudades:
Good Luck

Codigo Fuente:Aqui (tabla.zip)


1 comentarios:

Es mas fácil escribir esto:

var _listaCiudades = new List () {
"Buenos Aires", "Lima", "Rio de Janeiro", "La Paz", "Santiago"
};

Reply

Publicar un comentario