c# listview binding xamarin xamarin.forms

c# - Formas de Xamarin: Agrupación ObservableCollection



uwp observablecollection (1)

Así es como lo agruparías. Es posible que deba mejorar esto para que sea un poco más fácil de usar.

Propiedad agrupada

private ObservableCollection<Grouping<String, Request>> _groupedList = null; public ObservableCollection<Grouping<String, Request>> GroupedList { get { return _groupedList; } set { _groupedList = value; RaisePropertyChanged(() => GroupedList); } }

Crear lista

var list = new List<Request>(); var grouped = from Model in list group Model by Model.Done into Group select new Grouping<string, Request>(Group.Key, Group); GroupedList = new ObservableCollection<Grouping<string, TModel>>(grouped);

The ListView Xaml

<ListView IsGroupingEnabled="true" HasUnevenRows="true"> <ListView.GroupHeaderTemplate> <DataTemplate> <ViewCell> <Label Text="{Binding Key}" VerticalOptions="Center"/> </ViewCell> </DataTemplate> </ListView.GroupHeaderTemplate> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <ViewCell.View> <ContentView Padding="10"> <Label Text={Binding RequestName}" /> </ContentView> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView>

Tengo un ListView enlazado a ObservableCollection<Request> . Aquí está la clase de Request :

public class Request { public int Id { get; set; } public string RequestName { get; set; } public string Provider { get; set; } public int Done { get; set; } }

Tengo solo 2 valores posibles en Done : 0 o 1 . Request s que haya establecido el conjunto a 0 a un grupo, otros a otro grupo. ¿Cómo es posible hacer esto?