Кажется, что ваша страница содержит привязываемый макет в CollectionView.
На самом деле, вы можете использовать список в списке в качестве ItemsSource of CollectionView.
в коде позади
public class VM_CounterList
{
public ObservableCollection<AlbumsForList> albumList { get; set; }
public VM_CounterList()
{
albumList = new ObservableCollection<AlbumsForList>() {
new AlbumsForList(){
Name="No.1",
DemoImage = "screen.png",
Pictures = new ObservableCollection<MyImage>{ new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" } },
},
new AlbumsForList(){
Name="No.1",
DemoImage = "screen.png",
Pictures = new ObservableCollection<MyImage>{ new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" } },
},
new AlbumsForList(){
Name="No.1",
DemoImage = "screen.png",
Pictures = new ObservableCollection<MyImage>{ new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" } },
},
new AlbumsForList(){
Name="No.1",
DemoImage = "screen.png",
Pictures = new ObservableCollection<MyImage>{ new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" },new MyImage() {ImageSource="screen.png" } },
},
};
}
}
public class AlbumsForList : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public string Name { get; set; }
public ObservableCollection<MyImage> Pictures { get; set; }
private string demoImage;
public string DemoImage
{
set
{
if (demoImage != value)
{
demoImage = value;
NotifyPropertyChanged("DemoImage");
}
}
get { return demoImage; }
}
}
public class MyImage : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
private string imageSource;
public string ImageSource
{
set
{
if (imageSource != value)
{
imageSource = value;
NotifyPropertyChanged("ImageSource");
}
}
get { return imageSource; }
}
}
<DataTemplate>
<Image HeightRequest="40" WidthRequest="55" Aspect="AspectFill" Source="{Binding ImageSource}"/>
</DataTemplate>
Чтобы вам не нужно было менять код в xaml, он отлично работает, как на следующем снимке экрана.
Я использовал локальное изображение только для демонстрации.