この非常に厄介な問題に行き詰まっているので、私はここにいます。できる限りわかりやすく説明するように努めます。
Windows Phone の xaml ページに Panorama コントロールがあり、いくつかの PanoramaItems があります。各 PanoramaItem 内には、次の例のような Listbox があります。
<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);
}
}
私の問題は、このページに移動すると、データの読み込みに時間がかかりすぎて、データベースにあるブランド (samsung、lg、toshiba...) よりも多いことです。そのため、読み込みに 15 秒以上かかり、UI がフリーズし、クラッシュすることもあります。
これをより速くロードするにはどうすればよいですか?インクリメンタル ロードについて読んだことがありますが、いくつかのリストボックスでそれを機能させる方法がわかりません。
お時間をいただきありがとうございました!
レベル: 初心者。