pass a class as argument

  • Thread starter Thread starter powerranger
  • Start date Start date
P

powerranger

The code below gets data from my webservice and load the data into the
array called myarray using a class called DataClass. I would like to
use the same process (LoaData) to bind differrent comboboxes by using
different classes. How can I modify the LoadData so that I can pass in
the class -- private void LoadData(System.Windows.Forms.ComboBox cmbo,
??). Any sample of code would be very helpfull. Thanks.


private void LoadData(System.Windows.Forms.ComboBox cmbo)
{
WebService.GetData mydata = new WS.GetData();
DataSet Ds = mydata.GetInfo();
foreach (DataRow Dr in Ds.Tables["StateList"].Rows)
{
MyArray.Add(new DataClass(Convert.ToInt32(Dr["ID"].ToString()),
Dr["Desc"].ToString()));
}
cmbo.DisplayMember = "Desc";
cmbo.ValueMember = "Id";
cmbo.DataSource = MyArray;
 
Instead of passing a user created class, just pass a DataSet object to the
method. That way you can load it with whatever.

As you can see I use the index of zero to access the table from the dataset.
I'm assuming that there is only one table. If not, add the table name as
another parameter to the method

private void LoadData(System.Windows.Forms.ComboBox cmbo,DataSet ds,string
valueMember,string displayMember)
{
foreach (DataRow Dr in ds.Tables[0].Rows)
{
MyArray.Add(new DataClass(Convert.ToInt32(Dr[valueMember].ToString()),
Dr[displayMember].ToString()));
}
cmbo.DisplayMember = displayMember;
cmbo.ValueMember = valueMember;
cmbo.DataSource = MyArray;
cmbo.DataBind();
}
 
Back
Top