[英]How to display a list of list in DataGrid( WPF) using c#
我有一个标题列表(列),然后是数据行,并希望通过两种方式绑定在 DataGrid 中显示它
List<string> headers = new List<string> { "FirstName", "LastName", "Age" };
List<string> row1 = new List<string> { "John", "Doe", "19" };
List<string> row2 = new List<string> { "Jane", "Doe", "21" };
List<string> row3 = new List<string> { "Suzie", "Q", "52" };
List<string> row4 = new List<string> { "No", "Body", "48" };
List<List<string>> tableValues =
new List<List<string>> { row1, row2, row3, row4 };
编辑器不允许我显示列表列表,因为它有多个 <
我很感激任何帮助。
鉴于标题的数量可能会有所不同,我建议以方便双向数据绑定的格式转换数据并使用 DataTable:
var dt = new DataTable();
// create columns and headers
int columnCount = headers.Count;
for (int i = 0; i < columnCount; i++)
dt.Columns.Add(headers[i]);
// copy rows data
for (int i = 0; i < tableValues.Count; i++)
dt.Rows.Add(tableValues[i].Take(columnCount).ToArray());
// display in a DataGrid
dataGrid.ItemsSource = dt.DefaultView;
首先创建一个类来保存您的个人信息,因为您初始化列表的方式并不好。
Public class Person
{
public string Firstname {get; set;}
public string Surname {get; set;}
public int Age {get; set;}
}
然后你可以创建多个人并将他们存储在一个 Person 类型的列表中......例如
//other code
List<Person> People = new List<Person>();
People.Add(new Person() { Firstname = "John", Surname = "Doe", Age = 19 });
//etc
然后在 XAML 中,您所要做的就是将数据网格指向人员列表,它应该能够绑定到每个人的各种属性或自动生成列。
<DataGrid CanUserSortColumns="True"
CanUserAddRows="False"
CanUserDeleteRows="False"
AutoGenerateColumns="False"
ItemsSource="{Binding Path=People}"
SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn MinWidth="100"
Width="Auto"
IsReadOnly="False"
Header="Firstname">
<DataGridTextColumn.Binding>
<Binding Path="Firstname"/>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
未经测试的 XAML 但应该给你一个起点
网上有很多指南可以帮助解决这个问题,而不是在 Stack Overflow 上写你自己的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.