用Xamarin表格制作一个画廊形式

时间:2018-01-25 22:24:33

标签: c# json xaml xamarin.forms xamarin.android

我正在制作一个照片库,它从网址中获取图像名称的JSON。使用列表形式真的不提供良好的用户体验,所以我打算改变网格形式。尝试我在stackoverflow中找到的一些代码。问题是我尝试创建一个数组绑定,以便随着数据库中照片数量的增加,应用程序将为它添加一个新的网格并显示它。

<Grid x:Name="grid">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Image Grid.Column="0" Source="{Binding Images[0].MyImageUrl}" />
        <Image Grid.Column="1" Source="{Binding Images[1].MyImageUrl}" />
        <Image Grid.Column="2" Source="{Binding Images[2].MyImageUrl}" />
    </Grid>

这是XAML格式,现在我正在尝试创建一个与此绑定的cs,其中将自动创建一个网格文件以显示JSON文件中的图像。 提前致谢

1 个答案:

答案 0 :(得分:0)

Grid没有ItemsSource之类的属性。所以你需要至少以编程方式添加图像。

protected override void OnAppearing ()
{
   base.OnAppearing();

   // Create cols for each img
   for(int col = 0; col < Images.Length; ++col){
       grid.ColumnDefinitions.Add(new ColumnDefinitions { Width = new GridLenght(1, GridUnitType.Star)});
   }
   // Populate grid
   for(int col = 0; col < Images.Length; ++col){
       grid.Children.Add(new Image { source = Images[col] },0,col);
   }
}

如果你想在XAML中做所有事情。使用FlowListView

编辑:我做了2 for's因为我不确定您在创建Add时是否尝试ColumnDefinition它会起作用。无论如何,尝试一种方式。