最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

visual studio - .NET Maui CollectionView Not Showing All Data in Windows - Stack Overflow

programmeradmin1浏览0评论

I have a problem with CollectionView in Windows. The XAML is

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
    x:Class="LibraryAppM.Views.EnquiryPage"
    xmlns=";
    xmlns:x=";
    xmlns:library="clr-namespace:LibraryM;assembly=LibraryM"
    xmlns:local="clr-namespace:LibraryAppM.ViewModels.Enquiry"
    xmlns:toolkit=";
    x:Name="enquiry"
    Title="Richard's Library System"
    x:DataType="local:EnquiryViewModel">
    <ContentPage.BindingContext>
        <local:EnquiryViewModel />
    </ContentPage.BindingContext>
    <ContentPage.Behaviors>
        <toolkit:EventToCommandBehavior
            BindingContext="{Binding Path=BindingContext, Source={x:Reference enquiry}, x:DataType=ContentPage}"
            Command="{Binding GetAuthorsCommand}"
            EventName="Appearing" />
    </ContentPage.Behaviors>
    <Grid
        Padding="10,0,10,0"
        RowDefinitions="Auto,Auto,Auto,Auto,*"
        RowSpacing="10">
        <Image
            Grid.Row="0"
            Aspect="AspectFit"
            HeightRequest="185"
            SemanticProperties.Description="A picture of library shelves"
            Source="lib_pic.jpg" />
        <Label
            Grid.Row="1"
            FontSize="20"
            Text="Enquiry Page" />
        <toolkit:Expander Grid.Row="2" IsExpanded="{Binding IsOpened}">
            <toolkit:Expander.Header>
                <HorizontalStackLayout MaximumHeightRequest="42">
                    <Label
                        FontSize="16"
                        HorizontalOptions="Start"
                        Text="{Binding SelectedText}" />
                    <Label
                        HorizontalOptions="Start"
                        Text="&#9660;"
                        VerticalOptions="Center" />
                </HorizontalStackLayout>
            </toolkit:Expander.Header>
            <CollectionView
                HeightRequest="190"
                ItemsSource="{Binding DataList}"
                SelectedItem="{Binding SelectedItem}"
                SelectionChangedCommand="{Binding SelectionCommand}"
                SelectionMode="Single">
                <CollectionView.ItemTemplate>
                    <DataTemplate x:DataType="library:Author">
                        <Label FontSize="16" Text="{Binding FullName}" />
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
        </toolkit:Expander>
        <Grid
            Grid.Row="3"
            ColumnDefinitions="5*,10,Auto"
            RowDefinitions="Auto">
            <Label
                Grid.Column="0"
                HorizontalOptions="Start"
                Text="Title" />
            <Label
                Grid.Column="2"
                HorizontalOptions="Center"
                Text="Return Date" />
        </Grid>
        <CollectionView
            Grid.Row="5"
            ItemsSource="{Binding BookList}"
            VerticalScrollBarVisibility="Never">
            <CollectionView.ItemsLayout>
                <LinearItemsLayout ItemSpacing="3" Orientation="Vertical" />
            </CollectionView.ItemsLayout>
            <CollectionView.ItemTemplate>
                <DataTemplate x:DataType="library:Book">
                    <Grid ColumnDefinitions="Auto,*,Auto">
                        <Label
                            Grid.Column="0"
                            HorizontalOptions="Start"
                            Text="{Binding Title}" />
                        <Label
                            Grid.Column="2"
                            HorizontalOptions="End"
                            Text="{Binding ReturnDate}" />
                    </Grid>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    </Grid>
</ContentPage>

The list scrolls but the last few items are missing. If I now add Padding to the Grid in the second CollectionView (for example <Grid ColumnDefinitions="Auto,*,Auto" Padding="20"> some of the missing items appear. This view works without the Padding modification in Android. I'm on VS 17.13.3 and Windows 11.

I have a problem with CollectionView in Windows. The XAML is

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
    x:Class="LibraryAppM.Views.EnquiryPage"
    xmlns="http://schemas.microsoft/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft/winfx/2009/xaml"
    xmlns:library="clr-namespace:LibraryM;assembly=LibraryM"
    xmlns:local="clr-namespace:LibraryAppM.ViewModels.Enquiry"
    xmlns:toolkit="http://schemas.microsoft/dotnet/2022/maui/toolkit"
    x:Name="enquiry"
    Title="Richard's Library System"
    x:DataType="local:EnquiryViewModel">
    <ContentPage.BindingContext>
        <local:EnquiryViewModel />
    </ContentPage.BindingContext>
    <ContentPage.Behaviors>
        <toolkit:EventToCommandBehavior
            BindingContext="{Binding Path=BindingContext, Source={x:Reference enquiry}, x:DataType=ContentPage}"
            Command="{Binding GetAuthorsCommand}"
            EventName="Appearing" />
    </ContentPage.Behaviors>
    <Grid
        Padding="10,0,10,0"
        RowDefinitions="Auto,Auto,Auto,Auto,*"
        RowSpacing="10">
        <Image
            Grid.Row="0"
            Aspect="AspectFit"
            HeightRequest="185"
            SemanticProperties.Description="A picture of library shelves"
            Source="lib_pic.jpg" />
        <Label
            Grid.Row="1"
            FontSize="20"
            Text="Enquiry Page" />
        <toolkit:Expander Grid.Row="2" IsExpanded="{Binding IsOpened}">
            <toolkit:Expander.Header>
                <HorizontalStackLayout MaximumHeightRequest="42">
                    <Label
                        FontSize="16"
                        HorizontalOptions="Start"
                        Text="{Binding SelectedText}" />
                    <Label
                        HorizontalOptions="Start"
                        Text="&#9660;"
                        VerticalOptions="Center" />
                </HorizontalStackLayout>
            </toolkit:Expander.Header>
            <CollectionView
                HeightRequest="190"
                ItemsSource="{Binding DataList}"
                SelectedItem="{Binding SelectedItem}"
                SelectionChangedCommand="{Binding SelectionCommand}"
                SelectionMode="Single">
                <CollectionView.ItemTemplate>
                    <DataTemplate x:DataType="library:Author">
                        <Label FontSize="16" Text="{Binding FullName}" />
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
        </toolkit:Expander>
        <Grid
            Grid.Row="3"
            ColumnDefinitions="5*,10,Auto"
            RowDefinitions="Auto">
            <Label
                Grid.Column="0"
                HorizontalOptions="Start"
                Text="Title" />
            <Label
                Grid.Column="2"
                HorizontalOptions="Center"
                Text="Return Date" />
        </Grid>
        <CollectionView
            Grid.Row="5"
            ItemsSource="{Binding BookList}"
            VerticalScrollBarVisibility="Never">
            <CollectionView.ItemsLayout>
                <LinearItemsLayout ItemSpacing="3" Orientation="Vertical" />
            </CollectionView.ItemsLayout>
            <CollectionView.ItemTemplate>
                <DataTemplate x:DataType="library:Book">
                    <Grid ColumnDefinitions="Auto,*,Auto">
                        <Label
                            Grid.Column="0"
                            HorizontalOptions="Start"
                            Text="{Binding Title}" />
                        <Label
                            Grid.Column="2"
                            HorizontalOptions="End"
                            Text="{Binding ReturnDate}" />
                    </Grid>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    </Grid>
</ContentPage>

The list scrolls but the last few items are missing. If I now add Padding to the Grid in the second CollectionView (for example <Grid ColumnDefinitions="Auto,*,Auto" Padding="20"> some of the missing items appear. This view works without the Padding modification in Android. I'm on VS 17.13.3 and Windows 11.

Share Improve this question asked Mar 18 at 14:34 user3017691user3017691 3033 silver badges14 bronze badges 1
  • Which collectionview didn't show all data? There are two in your code. In addition, there are only 5 rows in the grid. Please change Grid.Row="5" as Grid.Row="4" for the second collectionview. – Liyun Zhang - MSFT Commented Mar 19 at 1:11
Add a comment  | 

1 Answer 1

Reset to default 0

The solution for me was to add a Height in the ContentPage definitions. For example

<ContentPage ...
HeightRequest="{OnIdiom Desktop=740,
                        Phone=*}">
发布评论

评论列表(0)

  1. 暂无评论