Я сделал нечто подобное с ретранслятором, и, возможно, это поможет ... или вы можете просто проигнорировать это, если это не так. В моей ситуации я привязал ретранслятор к данным и позволил пользователям изменять данные перед экспортом в XML. Следующий LINQ проходит по каждой строке в повторителе, использует findcontrol для получения элемента управления из базы данных, а затем использует Linq to XML, но это можно использовать для генерации объектов с использованием LINQ to Objects. rp - это повторитель, cbIgnore - это флажок, который, если пользователи его проверяют, строка не экспортируется.
Dim doc As New XDocument( _
New XDeclaration("1.0", "ISO-8859-1", "true"), _
New XElement("Schedule_Import", _
From c As RepeaterItem In rp.Items _
Where (c.ItemType = ListItemType.Item Or c.ItemType = ListItemType.AlternatingItem) _
AndAlso DirectCast(c.FindControl("cbIgnore"), HtmlInputCheckBox).Checked = False _
Select New XElement("activity", _
New XElement("code", DirectCast(c.FindControl("txtAC"), TextBox).Text), _
New XElement("starttime", DirectCast(c.FindControl("dtfStart"), DateTimeField).SelectedDateTime), _
New XElement("endtime", DirectCast(c.FindControl("dtfEnd"), DateTimeField).SelectedDateTime), _
New XElement("description", DirectCast(c.FindControl("txtTitle"), TextBox).Text))))