Xamarin CommunityToolKit Collectionview in Expander

Viewed 30

I am using expander in listview and in the expander, I want to use colectionview but cannot able to bind collectionview itemsource.

Here is a kind of structure

//Xaml File
<ListView SelectionMode="None"
          BackgroundColor="#F8F9FD"
          ItemsSource="{Binding STemplateData}"
          VerticalOptions="FillAndExpand"
          HasUnevenRows="True"
          VerticalScrollBarVisibility="Never"
          HorizontalScrollBarVisibility="Never"
          SeparatorVisibility="None">
          <ListView.ItemTemplate>
            <DataTemplate >
              <ViewCell>
                <Frame
                    BorderColor="#0000000D"
                    Margin="4,0,4,4"
                    CornerRadius="5"
                    HasShadow="False"
                    BackgroundColor="White">
                    <expand:Expander Tapped="ResultsExpander_Tapped" x:Name="ResultsExpander" IsExpanded="{Binding ResultsExpanded,Mode=TwoWay}" Command="{Binding myTest, Mode=OneWay}">
                      <expand:Expander.Header >
                        <StackLayout >
                          <Label VerticalOptions="CenterAndExpand"
                                  Text="{Binding templateName}"
                                  TextColor="#596080"
                                  FontSize="12"
                                  FontFamily="Inter-SemiBold"/>
                                </StackLayout>
                              </expand:Expander.Header>
                              <expand:Expander.Content>
                                <CollectionView ItemsSource="{Binding ICodeData}" ItemsLayout="HorizontalList">
                                  <CollectionView.ItemTemplate>
                                       <DataTemplate>
                                           <StackLayout>
                                               <Label Text="{Binding iCode}"/>

                                           </StackLayout>
                                       </DataTemplate>
                                     </CollectionView.ItemTemplate>
                                   </CollectionView>
                                 </expand:Expander.Content>
                               </expand:Expander>
                             </Frame>
                           </ViewCell>
                         </DataTemplate>
                       </ListView.ItemTemplate>
                   </ListView>
//ViewModel
 

//ListView
ObservableCollection < STemplateItem > _sTemplateData;
public ObservableCollection<STemplateItem> STemplateData
{
 get { return _sTemplateData; }
 set
   {
     _sTemplateData = value;
     OnPropertyChanged();
   }
}
STemplateData = new ObservableCollection<STemplateItem>(){
new STemplateResults{templateName = "ABC"},
new STemplateResults{templateName = "PQR"},
}

//Collectionview
ObservableCollection<ICodes> _iCodeData;
public ObservableCollection<ICodes> ICodeData
{
get { return _iCodeData; }
set
{
_iCodeData = value;
OnPropertyChanged();
}
}
//Models
public class ICodes
{
  public string iCode { get; set; }
}
public class STemplateItem
{
  public string templateName { get; set; }

}

So someone helps me to find out how can I bind collectionview. I am doing this with viewmodel and trying to bind data using ObservableCollection List view is working fine but in collectionview i am not able to see any data.

Thanks,

0 Answers
Related