C# 在WPF网格中循环
我有一个动态创建的WPF网格(根据布局计算行数和列数),如下所示:C# 在WPF网格中循环,c#,wpf,gridview,datagrid,grid,C#,Wpf,Gridview,Datagrid,Grid,我有一个动态创建的WPF网格(根据布局计算行数和列数),如下所示: private Grid CreateGrid(string layout) { int col; int row; if (layout == "4x4") { row = 4; col = 4; } else { row =
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;
}
private Grid CreateGrid(字符串布局)
{
int col;
int行;
如果(布局==“4x4”)
{
行=4;
col=4;
}
其他的
{
行=2;
col=2;
}
网格输出=新网格();
for(int i=0;i
在这些“单元”中的每一个都应该是另一个对象,用数据集中的数据填充(每个对象一个表)。该对象也是另一组栅格。我的目标是在这个动态创建的网格中循环,并将这个对象放入每个单元格中。(如果数据集中有布局2x2,但只有3个表,我只需要3个对象,最后一个单元格将为空)
然而,我并没有找到类似“foreach column in grid”的内容,甚至并没有找到如何获取列/行计数的方法。另一方面,我所发现的一切都与DataGrid或GridView有关——有什么区别,如果使用其他类型更好,为什么
提前感谢因此,我找到了解决方案。它可能不是最好的,但它很有效 代码如下:
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”是数据集,每个表都提供了我想放在问题(输出)网格单元中的一个对象的数据
但是,如果有人有更好的解决方案,我愿意接受建议:)您可以通过执行
output.RowDefinitions.count
或output.ColumnDefinitions.count
在WPF中不“循环通过网格”,因为UI不是数据。改用ItemsControl。发布一个你需要的屏幕截图,我可以告诉你在WPF中使用的正确方法。谢谢@JordyvanEijk,行和列的数量帮助我制定了一个有效的解决方案:)我觉得这有点像作弊,但它很简单,只要有效,我就不会抱怨:D