Вот как бы я это сделал (в SILVERLIGHT):
- Выполните асинхронный вызов и загрузите список Persons с пустой ObservableCollection для каждого из заказов ... GridView показывает данные (Имя, Электронная почта).
- Когда асинхронный вызов Persons сделан, сделайте второй вызов для заказов, когда он возвращается, заполните каждую пустую коллекцию Orders соответствующими заказами.
Если вы используете ObservableCollection, то Order будет отображаться при заполнении каждой коллекции. Я предполагаю, что у вас есть какой-то ключ, чтобы определить, какие заказы поступают с каким человеком.
Было бы что-то вроде этого, когда вернулись заказы:
For Each p As Person In PersonsList
Dim id = p.PersonId
p.Orders = (From o As Order in OrdersList Where o.PersonId = id).ToList
Next
Это код псевдо-vb, и это только пример. По сути, ключ состоит в том, чтобы использовать ObservableCollection для заказов вместо общего IEnumerable, чтобы коллекция обновлялась, когда вы что-то добавляете или удаляете из нее.