我正在使用新的Telerik Rad Control,我会使用GridView。
但我的问题是我使用一个List<List<String>>
对象的web服务恢复,我想将它显示在我的Datagridview中。
我尝试制作一个Grid.ItemSource = e.result但没有出现; - (
有什么问题?
非常感谢。
Narglix
答案 0 :(得分:1)
有点不清楚你想要如何显示数据,“每行将是一个列表”是否意味着你希望它以类似于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# public partial class 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; }
}
答案 1 :(得分:0)
您可以在此处查看我的答案(及其附带的申请表):http://www.telerik.com/community/forums/silverlight/gridview/how-to-bind-an-list-lt-list-lt-string-gt-gt-to-the-gridview.aspx
答案 2 :(得分:0)
你必须把theGrid.ItemsSource放在循环中