我目前正在开发一个测试应用程序来列出例如产品,但存在无法使用相应内容动态生成网格(目前仅标签)的问题。我想在调用主页时立即生成它们。
我已经浏览了各种教程和网站,但找不到任何可以帮助我解决问题的内容。尝试通过将网格分配给按钮来启动创建网格的方法。我尝试将该方法分配给 MainPage 类的构造函数,但最终结果中仍然不会显示任何内容。
public void CreateDummyGrids()
{
Grid gOut = new Grid();
gOut.RowDefinitions.Add(new RowDefinition());
gOut.RowDefinitions.Add(new RowDefinition());
gOut.RowDefinitions.Add(new RowDefinition());
gOut.ColumnDefinitions.Add(new ColumnDefinition());
gOut.ColumnDefinitions.Add(new ColumnDefinition());
for (int rowIndex = 0; rowIndex < 3; rowIndex++)
{
for (int columnIndex = 0; columnIndex < 2; columnIndex++)
{
var label = new Label
{
Text ="Hello",
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center
};
gOut.Children.Add(label, columnIndex, rowIndex);
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这Grid gOut是您的方法的局部变量CreateDummyGrids,不会传递到其他任何地方。所以在该方法之后它就会被破坏。
您需要在 XAML 中添加某种元素来添加网格(或者只是将网格放在那里并直接将子元素添加到其中)。
因此,在您希望网格出现的地方添加如下内容:
<Grid x:Name="productGrid" />
并将你的更改CreateDummyGrids为:
public void CreateDummyGrids()
{
productGrid.RowDefinitions.Add(new RowDefinition());
productGrid.RowDefinitions.Add(new RowDefinition());
productGrid.RowDefinitions.Add(new RowDefinition());
productGrid.ColumnDefinitions.Add(new ColumnDefinition());
productGrid.ColumnDefinitions.Add(new ColumnDefinition());
for (int rowIndex = 0; rowIndex < 3; rowIndex++)
{
for (int columnIndex = 0; columnIndex < 2; columnIndex++)
{
var label = new Label
{
Text ="Hello",
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center
};
productGrid.Children.Add(label, columnIndex, rowIndex);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在请记住,每次调用此方法时,都会添加新的 ColumnDefinitions、RowDefinitions 和 Labels,因此,如果您想继续添加内容,则必须稍微更改设置。但我希望这足以让你走向正确的方向
| 归档时间: |
|
| 查看次数: |
5986 次 |
| 最近记录: |