Как сделать привязку данных из БД к пользовательскому интерфейсу
Пытаюсь привязать с базы данных данные к пользовательскому интерфейсу, с этим кодом желаемый список не отображается. Что я сделал не так и как это сделать подскажите пожалуйста.
public partial class MainPage : ContentPage
{
private readonly DbService _DbService;
public List<StrTabl> Spisok { get; set; }
public MainPage(DbService dbservice)
{
InitializeComponent();
_DbService = dbservice;
BindingContext = this;
}
private async void saveButton_Clicked(object sender, EventArgs e)
{
await _DbService.CreateData(new StrTabl
{
Name = nameEntryField.Text,
MobNomer = mobileEntryField.Text
});
nameEntryField.Text = string.Empty;
mobileEntryField.Text = string.Empty;
Spisok = await _DbService.GetData(); // GetData() - метод для получения всех данных из БД.
}
}
<?xml version="1.0" encoding="utf-8"?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:local="clr-namespace:Bind"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Bind.MainPage">
<FlexLayout
Direction="Column">
<VerticalStackLayout
Padding="10"
FlexLayout.Basis="400"
BackgroundColor="Beige">
<Entry
x:Name="nameEntryField"
Placeholder="Name" />
<Entry
x:Name="mobileEntryField"
Placeholder="Mobile" />
<Button
x:Name="saveButton"
Text="Save"
Clicked="saveButton_Clicked" />
</VerticalStackLayout>
<ListView
ItemsSource="{Binding Spisok}"
FlexLayout.Grow="1"
HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<VerticalStackLayout
Padding="5">
<Label
Text="{Binding Name}"
FontSize="17"
FontAttributes="Bold" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="Auto" />
<ColumnDefinition
Width="*" />
<ColumnDefinition
Width="Auto" />
</Grid.ColumnDefinitions>
</Grid>
</VerticalStackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</FlexLayout>