我想知道如何将List<List<String>>
绑定到WPF中的DataGrid列。说我有以下代码:
List<List<string>> ugly = new List<List<string>>();
List<string> u0 = new List<string>{"one", "two", "three", "four"};
List<string> u1 = new List<string> { "five", "six", "seven", "eight" };
List<string> u2 = new List<string> { "nine", "ten", "eleven", "twelve" };
ugly.Add(u0);
ugly.Add(u1);
ugly.Add(u2);
如果我将datagrid的ItemsSource(名为dataGrid
)设置为List<string>
之一,则会在列中填入适当的数据。例如,dataGrid.ItemsSource = u0
会产生以下结果:
如何制作,以便List<String>
中的每个ugly
都有一列?
答案 0 :(得分:0)
如果您知道外部集合中有多少项目,那么您可以在显示内部List<string>
集合之前将其复制到匿名类型中。 ..使用你的例子:
var item = new { Column1 = u0, Column2 = u1, Column3 = u2 };
YourDataGrid.ItemsSource = item;
您可以在我对StackOverflow上的WPF : Dynamically create a grid with specified x rows and y columns问题的回答中找到更多信息。
答案 1 :(得分:0)
Column
对应于基础DataItem集合中的property
。您可以使用包含三个属性的匿名类型数组来完成此操作。
还要确保dataGrid AutoGenerateColumns
设置为true
。
dg.ItemsSource = new[] { new { First = u0[0], Second = u1[0], Third = u2[0] },
new { First = u0[1], Second = u1[1], Third = u2[1] },
new { First = u0[2], Second = u1[2], Third = u2[2] },
new { First = u0[3], Second = u1[3], Third = u2[3] }};