Putting in the List2.Requery() has got a little further. Thanks. Now, I can get the grandchildren to display. 
I had a porblem displaying the grandchildren as I scrolled up and down the Listview. I played around with the AutonavigateToSelected property  and the Tag field, and this is working now also.... is this yhe purpose of  this propery  ?
The only issue I have right now is how to flush out the Grandchild List, if there are no grandchilden for a partcular son e,g, the following sequence A son with Grandchildren, the next son has no grandchildren. etc. I initially had a if BO1.Count > 0, but then this was not refreshing the Grandchildren , leaving the grandchildren from the previous record. If I took this If BO1.Count out, I got an error message.What I have ended up doing, which works, is as follows:
this.idE_BO1.FillByParentPrimaryKey(0);
if (this.itR_BO1.Count > 0)
{ this.idE_BO1.FillByParentPrimaryKey(this.itR_BO1.ITR_PK); } 
this.listView2.Requery();
i.e. I have filled first with a zero value
Is this the best way to do this