Erwartetes Verhalten:
Wenn ich ein Mitglied auswähle, erwarte ich, dass die Liste der mit diesem Mitglied verknüpften Mitgliedschaften angezeigt wird.
Tatsächliches Verhalten:
Die Mitgliederliste wird nicht angezeigt, obwohl ich es bin in der Lage, Mitgliedschaften für zu erstellen, zu aktualisieren und zu löschen Mitglied. Nach der Auswahl eines Mitglieds werden jedoch keine Mitgliedschaften in der Liste angezeigt.
Ich habe einige Nachforschungen angestellt, als ich versuchte, die GetMemberMembershipsAsync-Methode zu debuggen. Der Zählwert wird als 0 angezeigt. Dies zeigt an, dass keine Daten aus der Datenbank abgerufen werden, obwohl ich erwarte, dass Ergebnisse zurückgegeben werden. Es werden also keine Mitgliedschaften erstellt.
Das ist die Methode, die nicht funktioniert:
Code: Select all
````
public Task GetMemberMembershipsAsync(int memberid)
{
return _database.QueryAsync(
"SELECT membership.ID, membership.MembershipName FROM Membership membership " +
"INNER JOIN Member M ON M.MembershipID = membership.ID " +
"WHERE M.ID = ?", memberid);
}
````
Code: Select all
namespace MauiAppBazaSportiva;
using MauiAppBazaSportiva.Models;
public partial class ListPage : ContentPage
{
public ListPage(Member member=null)
{
InitializeComponent();
BindingContext = member ?? new Member();
}
async void OnSaveButtonClicked(object sender, EventArgs e)
{
var member = (Member)BindingContext;
if(string.IsNullOrWhiteSpace(member.FirstName)||string.IsNullOrWhiteSpace(member.LastName))
{
await DisplayAlert("Eroare", "Numele si prenumele sunt obligatorii", "OK");
return;
}
await App.Database.SaveMemberAsync(member);
await Navigation.PopAsync();
}
async void OnDeleteButtonClicked(object sender, EventArgs e)
{
var member = (Member)BindingContext;
await App.Database.DeleteMemberAsync(member);
await Navigation.PopAsync();
}
async void OnChooseButtonClicked(object sender, EventArgs e)
{
var member = BindingContext as Member;
if (member != null)
{
var membershipPage = new MembershipPage(new Membership());
await Navigation.PushAsync(membershipPage);
membershipPage.Disappearing += async (s, args) =>
{
if (membershipPage.SelectedMembership != null)
{
member.MembershipID = membershipPage.SelectedMembership.ID;
await App.Database.SaveMemberAsync(member);
await DisplayAlert("Succes", "Abonamentul a fost asociat membrului.", "OK");
listView.ItemsSource = await App.Database.GetMemberMembershipsAsync(member.MembershipID);
}
};
}
else
{
await DisplayAlert("Error", "BindingContext nu este setat ca Membru.", "OK");
}
}
protected override async void OnAppearing()
{
base.OnAppearing();
if(BindingContext is Member member)
{
listView.ItemsSource = await App.Database.GetMemberMembershipsAsync(member.ID);
}
else
{
await DisplayAlert("Error", "BindingContext nu e setat catre un membru", "OK");
}
}
}
````
````
using MauiAppBazaSportiva.Models;
namespace MauiAppBazaSportiva;
public partial class MembershipPage : ContentPage
{
public Membership SelectedMembership { get; set; }
public MembershipPage(Membership membership=null)
{
InitializeComponent();
BindingContext = membership ?? new Membership();
}
async void OnSaveButtonClicked(object sender, EventArgs e)
{
if (BindingContext is Membership membership)
{
await App.Database.SaveMembershipAsync(membership);
listView.ItemsSource = await App.Database.GetMembershipsAsync();
}
else
{
await DisplayAlert("Error", "BindingContext is not set to a Membership.", "OK");
}
}
async void OnDeleteButtonClicked(object sender,EventArgs e)
{
var membership = listView.SelectedItem as Membership;
await App.Database.DeleteMembershipAsync(membership);
listView.ItemsSource = await App.Database.GetMembershipsAsync();
}
protected override async void OnAppearing()
{
base.OnAppearing();
listView.ItemsSource = await App.Database.GetMembershipsAsync();
}
async void OnAddButtonClicked(object sender,EventArgs e)
{
Membership m1;
if(listView.SelectedItem is Membership selectedMembership)
{
var member = new Member()
{
};
if(selectedMembership.Members==null)
{
selectedMembership.Members = new List();
}
await App.Database.SaveMemberAsync(member);
selectedMembership.Members ??= new List();
selectedMembership.Members.Add(member);
await DisplayAlert("Succes", "Membru adaugat cu succes","OK");
await Navigation.PopAsync();
}
else
{
await DisplayAlert("Eroare", "Te rog selecteaza un abonament inainte de adaugarea membrului.", "OK");
}
}
}