Xamarin 表单:分组 ObservableCollection
Posted
技术标签:
【中文标题】Xamarin 表单:分组 ObservableCollection【英文标题】:Xamarin Forms: Grouping ObservableCollection 【发布时间】:2016-03-09 12:11:34 【问题描述】:我有一个绑定到ObservableCollection<Request>
的ListView
。这是Request
类:
public class Request
public int Id get; set;
public string RequestName get; set;
public string Provider get; set;
public int Done get; set;
Done
中只有 2 个可能的值:0
或 1
。 Request
s 将 Done
设置为 0
到一个组,其他到另一个组。怎么可能做到这一点?
【问题讨论】:
也许这个链接会对你有所帮助:motzcod.es/post/94643411707/… 或 forums.xamarin.com/discussion/17976/… 【参考方案1】:以下是您将其分组的方式。您可能需要进一步增强它以使其更加用户友好。
分组属性
private ObservableCollection<Grouping<String, Request>> _groupedList = null;
public ObservableCollection<Grouping<String, Request>> GroupedList
get
return _groupedList;
set
_groupedList = value;
RaisePropertyChanged(() => GroupedList);
创建列表
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);
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>
【讨论】:
以上是关于Xamarin 表单:分组 ObservableCollection的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin:用于 Android 和 Windows UWP 的 Xamarin 表单中的分组列表的垂直字母索引(跳转列表)