StackLayout 及其内容不会显示在集合视图中,如果最大化 windows 它出现在 UWP 中 Xamarin.Forms

StackLayout and its contents not showing inside a collectionview if maximizes the windows it appears in UWP with Xamarin.Forms

collectionview 包含一个标签和 StackLayout 及其内容。标签正在显示,但 StackLayout 内容未显示,并且仅当最大化 windows 时才会出现 UWP.this 奇怪的行为仅发生在 uwp 中,不会发生在 ios 或 android 中。使用 xamarin.forms 5.0.0.2337

<CollectionView 
                    ItemsSource="{Binding Details}"
                    SelectionMode="None"
                    >
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <Grid Padding="20,0" 
                   RowDefinitions="auto,auto">
                           <Label Text="DateTime" IsVisible="{Binding IsDateVisible}" />
                            <StackLayout  Orientation="Horizontal"
                             Grid.Row="1"
                             IsVisible="{Binding IsDateVisible}">
                            <DatePicker Date="{Binding DateValue, Mode=TwoWay}"
                               Format="MMMM dd, yy"
                               HorizontalOptions="Start"
                               MaximumDate="{x:Static sys:DateTime.Now}"
                                />
                            <TimePicker Time="{Binding TimeValue, Mode=TwoWay}"
                               IsVisible="{Binding IsDateVisible}"
                               HorizontalOptions="Start"
                                />
                        </StackLayout>
                    </Grid>
                </DataTemplate>
            </CollectionView.ItemTemplate>
           </CollectionView>                

StackLayout and its contents not showing inside a collectionview if maximizes the windows it appears in UWP with Xamarin.Forms

看来知道 issue 适合 CollectionView,请投票支持此报告并密切关注以下更新,目前的解决方法是使用 listview 替换。

<ListView  SelectionMode="None">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid Padding="20,0" RowDefinitions="auto,auto">
                    <Label IsVisible="true" Text="DateTime" />
                    <StackLayout
                        Grid.Row="1"
                        IsVisible="true"
                        Orientation="Horizontal">
                        <DatePicker
                            Format="MMMM dd, yy"
                            HorizontalOptions="Start"
                            MaximumDate="{x:Static sys:DateTime.Now}" />
                        <TimePicker HorizontalOptions="Start" IsVisible="true" />
                    </StackLayout>
                </Grid>
            </ViewCell>

        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>