元素自动 Grid.Row 和 Grid.Column

Elements Auto Grid.Row and Grid.Column

我有一个MainPage.xaml代码:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="GridTest.MainPage">
    <ScrollView>
            <Grid x:Name="test" >
                <Grid.RowDefinitions>
                    <RowDefinition Height="100" />
                    <RowDefinition Height="100" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="0.5*" />
                    <ColumnDefinition Width="0.5*" />
                </Grid.ColumnDefinitions>
                <Button Text="Hello, world" Grid.Column="0" Grid.Row="0"></Button>
                <Button Text="Hello, world" Grid.Column="1" Grid.Row="0"></Button>
            </Grid>
        </ScrollView>
        
</ContentPage>

是否可以自动设置按钮参数Grid.Row和Grid.Column?不是手动的。

Is it possible to set Button Parameters Grid.Row and Grid.Column automatically? Not manually

正如 Jason 所说,Grid 不会自动排列子视图。 Grid.RowGrid.Column 的值默认为 0

对于此功能,请尝试设置为使用 CollectionView。将 ItemsLayout 设置为 GridItemsLayout 以在垂直网格中显示项目。

查看代码:

<CollectionView>
    <CollectionView.ItemsLayout>
        <GridItemsLayout Orientation="Vertical" Span="2"/>
    </CollectionView.ItemsLayout>
    <CollectionView.ItemsSource>
        <x:Array Type="{x:Type x:String}">
            <x:String>Hello, world</x:String>
            <x:String>Hello, world</x:String>
            <x:String>Hello, world</x:String>
            <x:String>Hello, world</x:String>
        </x:Array>
    </CollectionView.ItemsSource>
    <CollectionView.ItemTemplate>
        <DataTemplate>
            <StackLayout>
                <Button Text="{Binding }"/>
            </StackLayout>
        </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>