Приложение Xamarin падает на android при использовании CollectionView - PullRequest
0 голосов
/ 10 апреля 2020

я пытаюсь использовать CollectionView (горизонтальная ориентация), который получает данные как наблюдаемые из базы данных Firebase

, он отлично работает на ios, но когда я пытаюсь запустить приложение на android (попытался 2 на разных устройствах) приложение вылетает в 90% случаев (всегда вылетает при обновлении списка)

Я получаю это Eception: Снимок экрана исключения

Код Xaml:

<Frame Padding="0" x:Name="_roomMayLike" HorizontalOptions="CenterAndExpand" VerticalOptions="Start" BackgroundColor="White" HasShadow="False">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>
                            <Label Text="Rooms we think you will like:" HorizontalOptions="Start" FontSize="14" FontAttributes="Bold"/>
                            <CollectionView ItemsSource="{Binding RoomList}" x:Name="_lstx" SelectionMode="Single" Grid.Row="1" >

                                <CollectionView.ItemsLayout>
                                    <GridItemsLayout Orientation="Horizontal"/>
                                </CollectionView.ItemsLayout>

                                <CollectionView.ItemTemplate>
                                    <DataTemplate>

                                            <Grid Padding="10">
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="Auto"/>
                                                    <RowDefinition Height="Auto"/>
                                                </Grid.RowDefinitions>
                                                <Frame HeightRequest="30" WidthRequest="30" BackgroundColor="Green" HasShadow="true"/>
                                                <StackLayout Grid.Row="1">
                                                    <Label  Text="{Binding Name}" FontSize="12" HorizontalOptions="Center"/>
                                                    <Label  Text="{Binding RoomManager, StringFormat='By:{0}' }"  FontSize="12" HorizontalOptions="Center"/>
                                                </StackLayout>
                                            </Grid>

                                    </DataTemplate>
                                </CollectionView.ItemTemplate>
                            </CollectionView>
                        </Grid>
                    </Frame>

c# Код ViewModel:

 public ScrolledViewModel()
    {

        EnterNamePopup();

        RoomList = db.subRooms();

        AddRoomHandleC = new Command(() => AddRoomFunction() );

    }

c# Интерфейс FireBase:

public ObservableCollection<Room> subRooms()
        {
            return fbClient.Child("chatApp/Rooms")
                .AsObservable<Room>()
                .AsObservableCollection<Room>();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...