Это сообщение скрыто. Вы только что удалили это сообщение.
Как уже упоминалось @liyu, это было решено путем изменения BindingContext на ItemSource - это решило другую ошибку в iOS, которая была устранена в последнем обновлении пакетов xcode и nuget от 31 октября.
Я работаю над приложением .NET MAUI и столкнулся с проблемой, связанной с работой группировки в моем CollectionView на ClearancePage. Вот приблизительный набросок моего кода для этой страницы, включая файлы ClearancePage.xaml, ClearancePage.xaml.cs, StoreOffersGroup.cs и ClearancePageViewModel.cs. Данные есть, но группировка, похоже, не работает на iOS или Android должным образом. Моя цель — показать группу из 5 магазинов с соответствующими предложениями по распродаже. У меня есть рабочее решение с представлением коллекции, в которое вложено другое представление, и оно не работает на 100 % так, как предполагалось, отсюда и группировка.
XAML (ClearancePage.xaml)
Код: Выделить всё
Код: Выделить всё
public partial class ClearancePage : ContentPage
{
private readonly ClearancePageViewModel _vm;
public ClearancePage(ClearancePageViewModel vm)
{
InitializeComponent();
BindingContext = vm;
_vm = vm;
}
protected override void OnAppearing()
{
base.OnAppearing();
_vm.GetClearancesCommand.Execute(null);
}
}
Код: Выделить всё
public class StoreOffersGroup : List
{
public StoreOffersGroup(string name, List storeOffers) : base(storeOffers)
{
GroupName = name;
}
public string GroupName { get; private set; }
}
public class StoreOffer
{
public string? category { get; set; }
public string? description { get; set; }
public string? image { get; set; }
public double? newPrice { get; set; }
public double? originalPrice { get; set; }
public double? percentDiscount { get; set; }
public double? stock { get; set; }
}
Код: Выделить всё
public ObservableCollection ClearanceAndStores { get; } = new();
public ICommand GetClearancesCommand => getClearancesCommand ??= new Command(async () =>
{
await CheckPermissions();
await GetLocation();
await GetClearances();
});
private async Task GetClearances()
{
var clearances = await HttpService.GetAsync(
$"/Store/GetClosestStoresWithClearancesByLocation?userLat={_currentLocation.Latitude}&userLon={_currentLocation.Longitude}");
ClearanceAndStores.Clear();
foreach (var storeAndClearance in storeAndClearances)
{
List storeOffers = new();
foreach (var clearance in storeAndClearance.clearances)
{
storeOffers.Add(new StoreOffer
{
category = clearance.product.categories.da,
description = clearance.product.description,
image = clearance.product.image,
newPrice = clearance.offer.newPrice,
originalPrice = clearance.offer.originalPrice,
percentDiscount = clearance.offer.percentDiscount,
stock = clearance.offer.stock
});
}
ClearanceAndStores.Add(new StoreOffersGroup(storeAndClearance.store.name, storeOffers));
}
}
Я понятия не имею, что я делаю не так.
Подробнее здесь: https://stackoverflow.com/questions/791 ... n-net-maui
Мобильная версия