После поиска на каждом форуме в Интернете я решил опубликовать свой собственный вопрос: мои данные о просмотре списка отображаются корректно в IOS, но не в Android.Я привязываюсь к свойству в моей модели представления, и это выглядит правильно, но я не могу понять, что мне не хватает (я пытаюсь получить список заказов, чтобы заполнить мой просмотр списка).Любая помощь приветствуется!
Кроме того, я использую макет страницы с вкладками.Не уверен, если это имеет значение или нет.
//View model
public ObservableCollection<GroupedOrderModel> ListOfOrdersGrouped
{
get { return listOfOrdersGrouped; }
set {
listOfOrdersGrouped = value;
NotifyPropertyChanged("listOfOrdersGrouped");
}
}
public class OrderList : List<OrderStatusInfo>
{
public string Heading { get; set; }
public List<OrderStatusInfo> Orders
{
get { return this; }
set { Orders = value; }
}
}
public async Task<bool> BuildListviewData()
{
await Task.Run(()=> {
ObservableCollection<GroupedOrderModel> orderList = new ObservableCollection<GroupedOrderModel>();
if (GlobalInfo.GlobalOrderList != null && GlobalInfo.GlobalOrderList.Count > 0)
{
List<string> Headers = GlobalInfo.GlobalOrderList.Select(x => x.Status).Distinct().OrderBy(x => x).ToList();
foreach (var item in Headers)
{
var oGroup = new GroupedOrderModel
{
Heading = item
};
var oList = GlobalInfo.GlobalOrderList.Where(x => x.Status == item).ToList();
foreach (var o in oList)
oGroup.Add(o);
orderList.Add(oGroup);
}
ListOfOrdersGrouped = orderList;
}
}
}
//Orders.cs page
protected async override void OnAppearing()
{
await ovm.BuildListviewData();
BindingContext = ovm;
base.OnAppearing();
}
//The XAML
<ListView x:Name="ListViewOrdersList" HasUnevenRows="True" ItemsSource="{Binding ListOfOrdersGrouped}" IsGroupingEnabled="True">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Heading}" Margin="10"/>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="10">
<Label Text="{Binding OrderNo}" FontSize="20" HorizontalOptions="Start"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>