我有一个动态创建的WPF网格(基于布局的行数和列数),如下所示:
private Grid CreateGrid(string layout)
{
int col;
int row;
if (layout == "4x4")
{
row = 4;
col = 4;
}
else
{
row = 2;
col = 2;
}
Grid output = new Grid();
for (int i = 0; i < col; i++)
{
ColumnDefinition coldef = new ColumnDefinition();
coldef.Width = GridLength.Auto;
output.ColumnDefinitions.Add(coldef);
}
for (int i = 0; i < row; i++)
{
RowDefinition rowdef = new RowDefinition();
rowdef.Height = GridLength.Auto;
output.RowDefinitions.Add(rowdef);
}
return output;
}
在每个“单元格”中应该是另一个对象,用dataSet中的数据填充(每个对象一个表)。该对象也是另一组网格。我的目标是遍历这个动态创建的网格,并将此对象放入每个单元格。 (如果数据集中有布局2x2但只有3个表,我只需要3个对象,最后一个单元格将为空)
但是,我没有找到类似“网格中的foreach列”的内容,甚至没有找到如何获取列/行数。另一方面,我发现的所有内容都与DataGrid或GridView有关 - 有什么区别,如果另一种类型更好用于此,为什么?
提前致谢
答案 0 :(得分:0)
所以,我能够找到解决方案。它可能不是最好的,但它确实有效。
以下是代码:
foreach (DataTable table in result.Tables)
{
GfoTopBox box1 = StuffData(table);
Grid.SetRow(box1, j);
Grid.SetColumn(box1, i);
output.Children.Add(box1);
i++;
if (i >= output.ColumnDefinitions.Count)
{
i = 0;
j++;
}
}
“result”是数据集,每个表都提供了我想在问题(输出)中放入网格单元格中的一个对象的数据。
但是,如果有人有更好的解决方案,我愿意接受以下建议:)