Well I have reviewed my code blocks and removed off the needless parts. All I
am doing is, returning a list of class objects [the class containing the
properties I need] from my database handler function, written a custom class
extending the UIPickerViewModel class.
So we have a class-->
namespace ASTONAPP
{
public class PickerFacilityTemplate
{
public PickerFacilityTemplate ()
{
}
public int AssessmentID{get; set;}
public int FacilityID{get; set;}
public string FacilityName{get; set;}
}
}
My database handler function
public List<PickerFacilityTemplate> FetchFacility()
{
DataSet ds = new DataSet ();
string sql = "select * from ClientFacilityorder by
FacilityName";
this.CreateDBConnection ();
SqliteDataAdapter sda = new SqliteDataAdapter (sql,
sconn);
sda.Fill (ds);
List<PickerFacilityTemplate> objfcl=new
List<PickerFacilityTemplate>();
for(int i=0; i<ds.Tables[0].Rows.Count; i++)
{
PickerFacilityTemplate pft=new
PickerFacilityTemplate();
pft.AssessmentID=Convert.ToInt32(ds.Tables[0].Rows[i]["AssessmentID"].ToString
());
pft.FacilityID=Convert.ToInt32(ds.Tables[0].Rows[i]["FacilityID"].ToString
());
pft.FacilityName=ds.Tables[0].Rows[i]["FacilityName"].ToString
();
objfcl.Add (pft);
}
this.CloseDBConnection ();
return objfcl.ToList ();
}
My custom class extending from UIPickerViewModel
public class PickerDataModelSource: UIPickerViewModel
{
public PickerDataModelSource ()
{
}
public PickerDataModelSource (List<PickerFacilityTemplate>
lst)
{
this.Items=lst;
}
public event EventHandler<EventArgs> ValueChanged;
public List<PickerFacilityTemplate> Items;
{
get
{
return this._items;
}
set
{
this._items=value;
}
}
List<PickerFacilityTemplate> _items = new
List<PickerFacilityTemplate>();
public PickerFacilityTemplate SelectedItem
{
get
{
return this._items[this._selectedIndex];
}
}
public int _selectedIndex = 0;
public override int GetRowsInComponent (UIPickerView picker, int
component)
{
return this._items.Count;
}
public override string GetTitle (UIPickerView picker, int row,
int
component)
{
return items[row].FacilityName.ToString();
}
public override int GetComponentCount (UIPickerView picker)
{
return 1;
}
public override void Selected(UIPickerView picker, int row, int
component)
{
this._selectedIndex = row;
if (this.ValueChanged != null)
{
this.ValueChanged (this, new EventArgs ());
}
}
}
}
Now in the class file of the screen where I have the pickerview, I have
written,
PickerDataModelSource _pickerSource;
And in the ViewDidLoad method,
this._pickerSource=new PickerDataModelSource(objdbh.FetchFacility())
this.Picker.Model=this._pickerSource; [Picker being the name of my control]
But this approach is giving several errors.
Please help me. I am confused.
Look forward to your reply.
--
View this message in context:
http://monotouch.2284126.n4.nabble.com/Implementing-UIPickerView-with-data-from-Database-tp4655796p4655869.html
Sent from the MonoTouch mailing list archive at Nabble.com.
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch