Я работаю над приложением .NET MAUI, которое управляет участниками и членством. Я могу выполнять операции CRUD над участниками (добавлять, удалять, просматривать и обновлять), а также управлять членством (создавать, удалять, просматривать). Однако я столкнулся с проблемой при попытке добавить членство к участнику. Проблема возникает, когда я ввожу данные участника и ожидаю увидеть список связанных с ним членств, но членство не отображается.
Я проверил, что ошибок привязки XAML нет, и есть нет ошибок привязки в приложении. Кажется, с точки зрения привязки все в порядке, но список участников не отображается должным образом после перехода к сведениям об участнике.
Ожидаемое поведение:
Когда я выбираю участника, я ожидаю, что будет отображен список участников, связанных с этим участником.
Фактическое поведение:
Список участников не отображается, хотя Я могу создавать, обновлять и удалять членство для участника. Однако после выбора участника членство в списке не отображается.
Я провел небольшое исследование, когда пытался выполнить отладку метода GetMemberMembershipsAsync. значение счетчика отображается как 0. Это указывает на то, что данные из базы данных не извлекаются, хотя я ожидаю, что она вернет результаты. Таким образом, членство не создается.
Этот метод не работает:
````
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);
}
````
Я помещу ListPage.xaml.cs
using YourAppNamespace.Models;
namespace YourAppNamespace;
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("Error", "First and Last name are required", "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);
var membership = await App.Database.GetMemberMembershipsAsync(member.MembershipID);
await DisplayAlert("Success", "Membership has been associated with the member.", "OK");
}
};
}
else
{
await DisplayAlert("Error", "BindingContext is not set as Member.", "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 is not set to a Member.", "OK");
}
}
}
````
````
using YourAppNamespace.Models;
namespace YourAppNamespace;
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)
{
if (listView.SelectedItem is Membership selectedMembership)
{
var member = new Member();
await App.Database.SaveMemberAsync(member);
selectedMembership.Members ??= new List();
selectedMembership.Members.Add(member);
await DisplayAlert("Success", "Member added successfully", "OK");
await Navigation.PopAsync();
}
else
{
await DisplayAlert("Error", "Please select a membership before adding a member.", "OK");
}
}
}````
Подробнее здесь: https://stackoverflow.com/questions/793 ... s-not-work
Почему моя привязка в .NET Maui не работает? ⇐ C#
Место общения программистов C#
-
Anonymous
1735579969
Anonymous
Я работаю над приложением .NET MAUI, которое управляет участниками и членством. Я могу выполнять операции CRUD над участниками (добавлять, удалять, просматривать и обновлять), а также управлять членством (создавать, удалять, просматривать). Однако я столкнулся с проблемой при попытке добавить членство к участнику. Проблема возникает, когда я ввожу данные участника и ожидаю увидеть список связанных с ним членств, но членство не отображается.
Я проверил, что ошибок привязки XAML нет, и есть нет ошибок привязки в приложении. Кажется, с точки зрения привязки все в порядке, но список участников не отображается должным образом после перехода к сведениям об участнике.
Ожидаемое поведение:
Когда я выбираю участника, я ожидаю, что будет отображен список участников, связанных с этим участником.
Фактическое поведение:
Список участников не отображается, хотя Я могу создавать, обновлять и удалять членство для участника. Однако после выбора участника членство в списке не отображается.
Я провел небольшое исследование, когда пытался выполнить отладку метода GetMemberMembershipsAsync. значение счетчика отображается как 0. Это указывает на то, что данные из базы данных не извлекаются, хотя я ожидаю, что она вернет результаты. Таким образом, членство не создается.
Этот метод не работает:
````
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);
}
````
Я помещу ListPage.xaml.cs
using YourAppNamespace.Models;
namespace YourAppNamespace;
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("Error", "First and Last name are required", "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);
var membership = await App.Database.GetMemberMembershipsAsync(member.MembershipID);
await DisplayAlert("Success", "Membership has been associated with the member.", "OK");
}
};
}
else
{
await DisplayAlert("Error", "BindingContext is not set as Member.", "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 is not set to a Member.", "OK");
}
}
}
````
````
using YourAppNamespace.Models;
namespace YourAppNamespace;
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)
{
if (listView.SelectedItem is Membership selectedMembership)
{
var member = new Member();
await App.Database.SaveMemberAsync(member);
selectedMembership.Members ??= new List();
selectedMembership.Members.Add(member);
await DisplayAlert("Success", "Member added successfully", "OK");
await Navigation.PopAsync();
}
else
{
await DisplayAlert("Error", "Please select a membership before adding a member.", "OK");
}
}
}````
Подробнее здесь: [url]https://stackoverflow.com/questions/79316367/why-my-binding-in-net-maui-does-not-work[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия