I am using an Expander
for showing units and chapters of a book. I am able to show the units as the Expander.Header
, but the chapters under the unit is again a list. I tried like below but chapters are not able to view on UI.
XAML
<StackLayout BindableLayout.ItemsSource="{Binding AllItems,Mode=TwoWay}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Expander
ExpandAnimationEasing="{x:Static Easing.CubicIn}"
ExpandAnimationLength="500"
CollapseAnimationEasing="{x:Static Easing.CubicOut}"
CollapseAnimationLength="500">
<Expander.Header>
<StackLayout
Orientation="Horizontal">
<Label
Text="{Binding unit.title}"
TextColor="Black"
HorizontalOptions="Start"
HorizontalTextAlignment="Start"
FontSize="18"
VerticalTextAlignment="Center"
VerticalOptions="CenterAndExpand">
</Label>
</StackLayout>
</Expander.Header>
<Expander.ContentTemplate>
<DataTemplate>
<StackLayout
Orientation="Horizontal">
<Label
HorizontalOptions="Start"
Text="{Binding contentList.title}"
VerticalOptions="CenterAndExpand"
FontSize="16"
TextColor="Black">
</Label>
</StackLayout>
</DataTemplate>
</Expander.ContentTemplate>
</Expander>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
My JSON Data format:
"bookContentList": [
{
"unit": {
"title": "Unit 1: Revelation"
},
"contentList": [
{
"title": "Unit 1: Preview",
"embedCode": "c1"
},
{
"title": "Chapter 1: God's Plan for all creation",
"embedCode": "c2"
},
{
"title": "Chapter 2: Made to be with god",
"embedCode": "c3"
},
{
"title": "Chapter 3: Signs of gods presence",
"embedCode": "c4"
}
]
},
{
"unit": {
"title": "Unit 2: Trinity"
},
"contentList": [
{
"title": "Unit 2: Preview",
"embedCode": "c5"
},
{
"title": "Chapter 4: The mystery of the trinity",
"embedCode": "c6"
},
{
"title": "Chapter 5: Prayer and Worship",
"embedCode": "c7"
},
{
"title": "Chapter 6: Life of Virtue",
"embedCode": "c8"
}
]
}
]
ViewModel
private List<BookContentList> _allItems;
public List<BookContentList> AllItems
{
get
{ return _allItems; }
set
{
_allItems = value;
OnPropertyChanged("AllItems");
}
}
//setting data
AllItems = bookDetails.bookContentList;
My problem is chapters under each unit is not showing on the UI. I have uploaded a sample project here for the easy reference.
Also, I need to know how to get the complete details of the selected chapter?