如何在全景视图的列表框上快速加载数据

本文关键字:加载 数据 列表 全景 视图 | 更新日期: 2023-09-27 18:17:34

我来这里是因为我被这个非常烦人的问题卡住了。我将尽可能解释清楚。

我在我的Windows Phone xaml页面上有一个全景控件,有几个全景项。在每个PanoramaItem内部都有一个列表框,如下例所示:

<controls:Panorama ItemsSource="{Binding ContextCollection}" Title="Choose your model" x:Name="PanoramaAdd">
    <controls:PanoramaItem Header="Samsung">
        <Grid>
            <ListBox height="300"  Width="300" Name="Samsung_LBX"/>
        </Grid>
    </controls:PanoramaItem>
    <controls:PanoramaItem Header="LG">
        <Grid>
            <ListBox height="300"  Width="300" Name="LG_LBX"/>
        </Grid>
    </controls:PanoramaItem>
    <controls:PanoramaItem Header="Toshiba">
        <Grid>
            <ListBox height="300"  Width="300" Name="Toshiba_LBX"/>
        </Grid>
    </controls:PanoramaItem>

我从后台办公室的数据库中提取数据:

public ModelAdd()
{
    InitializeComponent();
    using (var _Context = new MyDataContext("Data Source=appdata:/DataAccessLayer.sdf;Mode=Read Only"))
    {
        //pull from my table Samsung all models of Samsung  in my Listbox                 
        Samsung_LBX.ItemsSource = _Context.Samsung.Select(x => x.Model);
        //pull from my table LG all models of LG in my Listbox
        LG_LBX.ItemsSource = _Context.LG.Select(x => x.Model);
        //pull from my table Toshiba all models of Toshiba  in my Listbox
        Toshiba.ItemsSource = _Context.Toshiba.Select(x => x.Model);
    }
}

我的问题是,当我导航到这个页面,数据需要太多的时间来加载,有超过这些品牌(三星,lg,东芝…),我有在我的数据库。所以,它需要15秒或更长时间加载,我的UI冻结,有时甚至崩溃。

我怎样才能使这个加载更快?我读过增量加载,但我不知道如何使它与我的几个列表框工作。

非常感谢您的时间!

水平:初学者。

如何在全景视图的列表框上快速加载数据

您可能希望首先确保您的数据以list而不是Ienumerable的形式呈现,以便使用数据虚拟化。添加".ToList();。"

Context.Samsung。Select(x => x. model).ToList();