Since I don't have your service, I had to create sample data, but I think the following code fragment shows the basic idea.
struct SampleRec { public string caption; public int val; };
static List<SampleRec> ServiceMock()
{
return new List<SampleRec>() {
new SampleRec() { caption = "test1", val = 1 },
new SampleRec() { caption = "test2", val = 2 }};
}
private void buttonFill_Click(object sender, EventArgs e)
{
var dt = new System.Data.DataTable();
dt.Columns.Add("caption", typeof(string));
dt.Columns.Add("value", typeof(int));
dt.BeginLoadData();
ServiceMock().ForEach(r1 =>
{
dt.LoadDataRow(new object[] { r1.caption, r1.val }, LoadOption.OverwriteChanges);
});
dt.EndLoadData();
this.dataGridView1.DataSource = dt;
}