Hi Duck,
Data binding’s “Business Object� which is implemented by BindingList<T>, will fit for you. Please refer to the following code steps:
1. Define data object for each type of response (note that public properties are used as data column in DataGridView):
Code Snippet
// Data object for response 1.
public class ResponseObject1
private int id1;
private string response1;
public int ID1
get { return id1; }
set { id1 = value; }
public string Response1
get { return response1; }
set { response1 = value; }
Code Snippet
// Data object for response 2.
public class ResponseObject2
private int id2;
private string response2;
public int ID2
get { return id2; }
set { id2 = value; }
public string Response2
get { return response2; }
set { response2 = value; }
2. Set DataGridView’s DataSource to specific BindingList generated according to ListBox.SelectedIndex in SelectedIndexChanged event. Of course you can define methods for random generating of each index, and that makes it looks more object oriented (pay attention to the bolded lines):
Code Snippet
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
switch (listBox1.SelectedIndex)
case 0:
BindingList<ResponseObject1> response1 = new BindingList<ResponseObject1>();
for (int i = 0; i < 10; i++)
ResponseObject1 object1 = new ResponseObject1();
"response message: " + i;
this.dataGridView1.DataSource = response1;
break;
case 1:
BindingList<ResponseObject2> response2 = new BindingList<ResponseObject2>();
for (int i = 0; i < 10; i++)
ResponseObject2 object2 = new ResponseObject2();
"response message: " + i;
this.dataGridView1.DataSource = response2;
break;
default:
break;
Let me know if there is any problem.
Thanks.
Best wishes,
Jun Wang
|