Hi, I was unable to understand the attached example.
I am trying to implement it as a listview inside another, each being grouped based on different properties
<listView:SfListView x:Name ="outerList"
GroupHeaderSize="40"
ItemsSource="{Binding GroupedList}"
SelectionMode="None">
<listView:SfListView.DataSource >
<dataSource:DataSource>
<dataSource:DataSource.GroupDescriptors>
<dataSource:GroupDescriptor PropertyName="GroupName"/>
</dataSource:DataSource.GroupDescriptors>
</dataSource:DataSource>
</listView:SfListView.DataSource>
<listView:SfListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout>
<Label Text="{Binding Key}"/>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</listView:SfListView.GroupHeaderTemplate>
<listView:SfListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<listView:SfListView
x:Name ="innerList"
ItemsSource="{Binding Source={x:Reference outerList}, Path=BindingContext.UserList}">
<listView:SfListView.DataSource >
<dataSource:DataSource>
<dataSource:DataSource.GroupDescriptors>
<dataSource:GroupDescriptor PropertyName="Role"/>
</dataSource:DataSource.GroupDescriptors>
</dataSource:DataSource>
</listView:SfListView.DataSource>
<listView:SfListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout>
<Label Text="{Binding Key}" />
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</listView:SfListView.GroupHeaderTemplate>
<listView:SfListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
//viewcell code goes here
</ViewCell.View>
</ViewCell>
</DataTemplate>
</listView:SfListView.ItemTemplate>
</listView:SfListView>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</listView:SfListView.ItemTemplate>
</listView:SfListView>
Here are the two models:
public class UserViewModel
{
public int GroupId { get; set; }
public string GroupName { get; set; }
public List<Member> UserList { get; set; } = new List<Member>();
}
public class Member
{
public int RoleId { get; set; }
public string RoleName { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
}
private ObservableCollection<UserViewModel> _groupedMembers = new ObservableCollection<UserViewModel>();
public ObservableCollection<UserViewModel> GroupedList
{
get { return _groupedMembers; }
set
{
_groupedMembers = value;
RaisePropertyChanged(() => GroupedList);
}
}