В шаблоне элемента списка вы устанавливаете источником привязки
ImageList - коллекцию
BitmapImage<Image Width="100" Height="75" IsEnabled="False"
Source="{Binding Path= ImageList}" />
У изображения нет такого свойства, и следовательно ничего не отображается. Здесь вы хотите использовать сам объект, а не какое-либо из его свойств. Просто не указывайте Path в привязке (или сообщите в явном виде используя символ
.: {Binding Path = . })
<Image Width="100" Height="75" IsEnabled="False"
Source="{Binding}" />
Совет
Image может сам подцепить картинку если использовать корректный путь к файлу, а значит можно упростить класс убрав
ImageList и использовав в привязке
LinksToPictures. Кроме этого можно безболезненно убрать приватные свойства (вы все равно не сможете к ним привязаться). В итоге после небольшого рефакторинга получится следующий класс:
public class Gallery
{
private string directoryPath; // Путь к каталогу
public IEnumerable<string> LinksToPictures { get; } // Названия файлов
public Gallery(string directoryPath)
{
this. directoryPath = directoryPath;
LinksToPictures = Directory.GetFiles(directoryPath, "*.jp*g");
}
}
Примечание:
1. Устанавливать ItemsSource для списка можно в разметке:
ItemsSource="{Binding LinksToPictures}"
Если вы так пробовали делать, но не видели изменений, проверьте что DataContext был установлен, на данном этапе это можно сделать так:
public MainWindow()
{
InitializeComponent();
DataContext = new Gallery("F://");
}
В дальнейшем вы научитесь устанавливать контекст извне окон.
2. Если вы хотите изменять значение свойства из кода объекта (Galery) вам нужно будет реализовать интерфейс
INotifyPropertyChanged (или, сокращенно INPC).
А для того, чтобы интерфейс обновлялся при изменении последовательности элементов (удаление, добавление и т.д.), коллекция должна реализовывать интерфейс
INotifyCollectionChanged (в ответах и комментариях вы можете увидеть часто используемое сокращение - INCC).
List<_> к таким коллекциям не относится, поэтому лучше заменить на
ObservableCollection.
Это очень важные интерфейсы, поэтому рекомендую разобраться как они работают.