C# 将BoxView动态添加到网格[Xamarin.Forms]

C# 将BoxView动态添加到网格[Xamarin.Forms],c#,ios,xaml,xamarin,xamarin.forms,C#,Ios,Xaml,Xamarin,Xamarin.forms,我正在尝试使用3列多行的网格格式添加BoxView。我已经使用xaml和行为定义了网格 在c#文件中。应该为相同数量的图像创建一个BoxView,每列3个图像 谢谢 XAML C# public主页() { 初始化组件(); int colmax=3; int numberOfImages=15; //添加三列 对于(int i=0;i

我正在尝试使用3列多行的网格格式添加BoxView。我已经使用xaml和行为定义了网格 在c#文件中。应该为相同数量的图像创建一个BoxView,每列3个图像

谢谢

XAML


C#

public主页()
{
初始化组件();
int colmax=3;
int numberOfImages=15;
//添加三列
对于(int i=0;i对于(int myCount=0;myCount当您将子项添加到网格时,必须指定行和列,否则它们将添加到0,0

  imageGrid.Children.Add(new BoxView() { BackgroundColor = Color.Red }, newrow, newcol);

你的代码有什么问题?它没有做什么,或者做得不正确?嗨,Jason,我想让它做的是打印与变量'numberOfImages'(so 15)相同数量的方框。我正在尝试创建一个类似Instagram的用户界面,页面将读取它必须以网格格式显示的图像量。如果有可能,您是否知道更好的方法来实现这一点,谢谢。您告诉了您的要求,但您的代码实际在做什么?您是否遇到错误或异常?它是否打印了错误数量的项目?是否它有任何作用吗?我没有发现错误,它显示了搜索栏,并且只在搜索栏正下方的左上角打印一个框视图。换句话说,它只在网格的0,0区域打印。谢谢@Jason,然后我添加了一个边距来分隔框视图。你知道如何在n上获得滚动视图吗ested grid以便我可以滚动框视图?谢谢
public MainPage()
    {
        InitializeComponent();

        int colMaximum = 3;
        int numberOfImages = 15;

        //To add three columns 
        for (int i = 0; i < colMaximum; i++)
        {
            imageGrid.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = new GridLength(120, GridUnitType.Absolute)
            });
        }

        //To add an array of rows
        imageGrid.RowDefinitions = new RowDefinitionCollection();

        for (int myCount = 0; myCount <= numberOfImages / colMaximum; myCount++)
        {
            imageGrid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(120, GridUnitType.Absolute)
            });

            //To add a new box view for each 
            for (int newcol = 0; newcol <= colMaximum; newcol++)
            {
                for (int newrow = 0; newrow <= numberOfImages / colMaximum; newrow++)
                {
                    imageGrid.Children.Add(new BoxView() { BackgroundColor = Color.Red });
                }
            }
        }
    }
  imageGrid.Children.Add(new BoxView() { BackgroundColor = Color.Red }, newrow, newcol);