Как заполнить приложение Xamarin.форма элемента управления ListView из базы данных SQLite
Я работаю над простым проектом в xamarin.forms, который я хочу заполнить listview из базы данных в этом формате.
Пункт-1
Элементы: элементы из базы данных
Места: Местоположение из базы данных
Районы: Районы из базы данных
Cheifdoms: Cheifdoms из базы данных
ЕИ: единица измерения из базы данных
Цена: Цена из базы данных
Пункт 2
Элементы: элементы из базы данных
Места: Местоположение из базы данных
Районы: Районы из базы данных
Cheifdoms: Cheifdoms из базы данных
ЕИ: единица измерения из базы данных
Цена: Цена из базы данных
и так далее
Что я уже пробовал:
Для моей страницы контента
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="SLCommoditys.Views.CommodityListPage"> <ContentPage.ToolbarItems> <ToolbarItem Text="Add New" Clicked="OnAddNewClicked" /> </ContentPage.ToolbarItems> <ContentPage.Content> <ListView x:Name="lvCommodity"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <StackLayout Spacing="2" Orientation="Vertical"> <StackLayout Orientation="Horizontal"> <Label Text="Items: " FontSize="16"/> <Label Text="{Binding Items}" FontSize="16" TextColor="Black"/> </StackLayout> <StackLayout Orientation="Horizontal"> <Label Text="Location: " FontSize="16"/> <Label Text="{Binding Location}" FontSize="16" TextColor="Black"/> </StackLayout> <StackLayout Orientation="Horizontal"> <Label Text="District: " FontSize="16"/> <Label Text="{Binding District}" FontSize="16" TextColor="Black"/> </StackLayout> <StackLayout Orientation="Horizontal"> <Label Text="Chiefdom: " FontSize="16"/> <Label Text="{Binding Chiefdom}" FontSize="16" TextColor="Black"/> </StackLayout> <StackLayout Orientation="Horizontal"> <Label Text="Unit of Measure: " FontSize="16"/> <Label Text="{Binding UOM}" FontSize="16" TextColor="Black"/> </StackLayout> <StackLayout Orientation="Horizontal"> <Label Text="Price: " FontSize="16"/> <Label Text="{Binding Price}" FontSize="16" TextColor="Black"/> </StackLayout> </StackLayout> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> </ContentPage.Content> </ContentPage>
использование SLCommoditys.Модели;
использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;
использование Xamarin.Формы;
использование Xamarin.Форм.Язык XAML;
пространство имен SLCommoditys.Просмотры
{
[XamlCompilation(XamlCompilationOptions.Компилировать)]
публичный частичный класс CommodityListPage : ContentPage
{
публичная страница CommodityListPage ()
{
метод InitializeComponent ();
}
охраняемых переопределить недействительными асинхронного OnAppearing()
{
база.Онаппеаринг();
lvCommodity.ItemsSource = await App.SQLiteDb.GetComosAsync();
}
асинхронные OnAddNewClicked недействительным(объект отправителя, EventArgs в электронной)
{
ждите навигации.PushAsync(new AddNewPage
{
BindingContext = новый CommodityList()
});
}
}
}
использование SQLite;
использование системы;
использование системы.Коллекции.Общий;
использование System.Text;
пространство имен SLCommoditys.Модели
{
публичный класс CommodityList
{
[PrimaryKey, Автоинкремент]
public int Id { get; set; }
публичные строковые элементы { get; set; }
public string Location { get; set; }
public string District { get; set; }
общественного строка вождей { получить; набор; }
общественного строка ЕИ { получить; набор; }
публичная строка Price { get; set; }
}
}
использование SLCommoditys.Модели;
использование SQLite;
использование системы;
использование системы.Коллекции.Общий;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;
пространство имен SLCommoditys.Data
{
публичный класс SQLiteHelper
{
SQLiteAsyncConnection дБ;
public SQLiteHelper(string dbPath)
{
db = new SQLiteAsyncConnection(dbPath);
db.CreateTableAsync<user>().подождите();
db.CreateTableAsync<commoditylist>().подождите();
}
//Вставить и обновить новую запись
public Task<int> SaveItemAsync(Пользовательское лицо)
{
если (person.id != 0)
{
возвращение дБ.UpdateAsync(человек);
}
еще
{
возврат БД.InsertAsync(персона);
}
}
//Удалить
public Task<int> DeleteItemAsync(User user)
{
возврат БД.DeleteAsync(пользователь);
}
//Читать Все Пункты
общественные задачу<список<пользователь>> У метода getitemsasync()
{
возврат БД.Таблица<user>().ToListAsync();
}
public Task<int>SaveComsAsync(CommodityList como)
{
если (Комо.Id != 0)
{
возвращение дБ.UpdateAsync(Комо);
}
еще
{
возврат БД.InsertAsync(como);
}
}
//Читать Пункт
public Task<user> GetItemAsync(строковый пароль)
{
возврат БД.Таблица<user>().Where(i => i.Password == пароль).FirstOrDefaultAsync();
}
общественные задачу<список<commoditylist&ГТ;&ГТ; GetComosAsync()
{
возврат БД.Таблица<commoditylist>().ToListAsync();
}
public Task<commoditylist> GetComoAsync(int id)
{
возврат БД.Таблица<commoditylist>()
.Где(i => i.Id == id)
.FirstOrDefaultAsync();
}
}
}
Gerry Schmitz
Вы публикуете кучу кода, не связанного с "загрузкой listview", и ожидаете чего?
Найти Уолдо?
Mathiudi
охраняемых переопределить недействительными асинхронного OnAppearing()
{
база.Онаппеаринг();
lvCommodity.ItemsSource = await App.SQLiteDb.GetComosAsync();
}
Mathiudi
общественные задачу<список<commoditylist&ГТ;&ГТ; GetComosAsync()
{
возврат БД.Таблица<commoditylist>().ToListAsync();
}
public Task<commoditylist> GetComoAsync(int id)
{
возврат БД.Таблица<commoditylist>()
.Где(i => i.Id == id)
.FirstOrDefaultAsync();