В настоящее время я создаю приложение UWP с XAML и C#, но я попал в серьезную проблему. Домашняя страница содержит более 700 элементов, которые хранятся в базе данных SQLite и заполняются во время выполнения. Каждый раз, когда я перемещаюсь и возвращаюсь на страницу, приложение замерзает на некоторое время, а затем отображает домашнюю страницу ... Как я могу заполнить ее только один раз, даже если она занимает все мое время запуска?Заполнение GridView с привязкой данных только один раз за выполнение
Мой код для заполнения выглядит следующим образом (в * .xaml.cs):
public sealed partial class MainView : Page
{
// Creates the Collection
public System.Collections.ObjectModel.ObservableCollection<sqlitetable> chooseaname = new System.Collections.ObjectModel.ObservableCollection<sqlitetable>();
public MainView()
{
this.InitializeComponent();
// Populates the Collection
using (var db = new SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), System.IO.Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, "Assets", "database.db")))
{
foreach (var entry in db.Table<sqlitetable>())
{
chooseaname.Add(new sqlitetable { Image = "/Assets/pics/" + entry.ID + ".png", Name = entry.Name, Type1 = "/Assets/Types/" + entry.Type1 + ".png", Type2 = "/Assets/Types/" + entry.Type2 + ".png", dummyID = "# " + entry.ID.ToString("000") });
}
}
// Sets the binding
mainView.ItemsSource = chooseaname;
}
Что делает ваш код выглядеть? В упрощенной форме? –
Что вы «заселяетесь»? Если элементы идут непосредственно на страницу, вы будете почти * иметь *, чтобы заполнять ее каждый раз. Если они собираются в какую-то другую коллекцию, это достаточно легко. –
@PetterHesselberg Сделано, но я не думаю, что способ, которым я это делаю, будет проходить через изменения для заполнения только один раз. –