将页面导航到xamarin形式的页面时,UI冻结

时间:2018-12-18 07:56:50

标签: xamarin xamarin.forms

在我的应用程序“我的主页显示菜单”中,单击菜单后,下一页的加载非常缓慢并冻结了UI。

当内容页面包含带有Items的listView时,会发生这种情况。 我的数据页内容包含50个项目的listView(无限滚动前50个项目)

XAML:

<ListView  
    ItemsSource="{Binding ItemsData}" 
    SelectedItem="{Binding SelectedItemsData}"
    HasUnevenRows="True" 
    BackgroundColor="White" x:Name="ItemsDataList">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid 
                    Margin="2,0,2,0" 
                    Padding="8" 
                    IsEnabled="{Binding IsEnableItemsData}">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="30*"/>
                        <ColumnDefinition Width="30*"/>
                        <ColumnDefinition Width="30*"/>
                        <ColumnDefinition Width="20*"/>
                        <ColumnDefinition Width="20*"/>
                    </Grid.ColumnDefinitions>

                    <Label Text="{Binding SKU}" Grid.Row="0" Grid.Column="0" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="{Binding SKUColor}" FontSize="Small"/>
                    <Label Text="{Binding OrderNumber}" Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
                    <Label Text="{Binding CategoryName}" Grid.Row="0" Grid.Column="2" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
                    <Label Text="{Binding OrderQuantity}" Grid.Row="0" Grid.Column="3" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
                    <Label Text="{Binding Bin}" Grid.Row="0" Grid.Column="4" HorizontalTextAlignment="Center" VerticalOptions="Center" TextColor="Black" FontSize="Small"/>
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>

    <ListView.Behaviors>
        <eventToCommand:EventToCommandBehavior 
            EventName="ItemSelected" 
            Command="{Binding ItemsDataSelectedItemChange}"/>
        <eventToCommand:EventToCommandBehavior 
            EventName="ItemAppearing" 
            Command="{Binding ItemsDataItemAppearing}"/>
    </ListView.Behaviors>
</ListView>

ViewModel:

public ObservableCollection<ItemsData> Data
{
    get { return _data; }
    set
    {
        _data = value;
        RaisePropertyChanged();
    }
}

从本地数据库获取数据

Data = GetData(GlobalVariable.BranchId, DataLimit, Offset, SearchText, filterData, "Others", sortData);

如何摆脱这个问题?

0 个答案:

没有答案