Немного неясно, как вы хотите отображать данные, означает ли "каждая строка будет список", что вы хотите, чтобы она отображалась иерархически, как описано здесь http://www.telerik.com/help/silverlight/gridview-basic-hierarchies.html?
В любом случае вам нужно либо воспользоваться подходом, предложенным на форуме Telerik, и создать таблицу данных и привязать ее, либо вы создаете классы для элементов, возвращаемых в списках, а затем создаете списки этих классов. Затем привяжите к этим спискам.
Предполагая, что вы хотите отобразить его иерархически:
Например, если ваш List<List<String>>
является списком команд, а внутренние списки являются членами команды. Чтобы получить результат, где каждая команда представляет собой строку в основной сетке, и вы можете «углубиться» в команды, используйте приведенный ниже пример.
XAML
<telerikGrid:RadGridView x:Name="theGrid" AutoGenerateColumns="False">
<telerikGrid:RadGridView.Columns>
<telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TeamName}" Header="Team" UniqueName="Team" />
</telerikGrid:RadGridView.Columns>
<telerikGrid:RadGridView.ChildTableDefinitions>
<telerikGrid:GridViewTableDefinition>
<telerikGrid:GridViewTableDefinition.Relation>
<telerikData:PropertyRelation ParentPropertyName="TeamMembers" />
</telerikGrid:GridViewTableDefinition.Relation>
</telerikGrid:GridViewTableDefinition>
</telerikGrid:RadGridView.ChildTableDefinitions>
</telerikGrid:RadGridView>
</Grid>
C #
открытый частичный класс MainPage: UserControl
{
public List<Team> TeamList { get; set; }
public MainPage() {
InitializeComponent();
//Property to bind to
TeamList = new List<Team>();
//Fake data returned from webservice
List<List<string>> eresults = new List<List<string>>();
List<string> innerList1 = new List<string> { "John", "Sarah", "Brad" };
List<string> innerList2 = new List<string> { "Dave", "Lucy", "Eva" };
eresults.Add(innerList1);
eresults.Add(innerList2);
int counter = 0;
foreach (List<string> innerList in eresults) {
Team theTeam = new Team();
theTeam.TeamName = string.Format("Team {0}", counter);
foreach (string s in innerList) {
TeamMember theMember = new TeamMember();
theMember.MemberName = s;
theTeam.TeamMembers.Add(theMember);
}
TeamList.Add(theTeam);
counter++;
}
theGrid.ItemsSource = TeamList;
}
}
public class Team
{
public List<TeamMember> TeamMembers { get; set; }
public String TeamName { get; set; }
public Team() {
TeamMembers = new List<TeamMember>();
}
}
public class TeamMember
{
public String MemberName { get; set; }
}