[英]Xamarin Forms: Grouping ObservableCollection
I have a ListView
binded to ObservableCollection<Request>
. 我有一个
ListView
绑定到ObservableCollection<Request>
。 Here's Request
class: 这是
Request
类:
public class Request
{
public int Id { get; set; }
public string RequestName { get; set; }
public string Provider { get; set; }
public int Done { get; set; }
}
I have only 2 possible values in Done
: 0
or 1
. 我在
Done
只有两个可能的值: 0
或1
。 Request
s that have Done
set to 0
to one group, others to other group. Request
将Done
设置为0
到一个组,其他Request
设置为其他组。 How is it possible to do this? 怎么可能这样做?
Here is how you would group it. 这是你如何组合它。 You may need to enhance on this further to make it a bit more user friendly.
您可能需要进一步加强这一点,使其更加用户友好。
Grouped Property 分组财产
private ObservableCollection<Grouping<String, Request>> _groupedList = null;
public ObservableCollection<Grouping<String, Request>> GroupedList {
get {
return _groupedList;
}
set {
_groupedList = value;
RaisePropertyChanged(() => GroupedList);
}
}
Creating List 创建列表
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 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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.