Ваша модель представления должна предоставлять свойство коллекции, которое имеет ImageSource
или BitmapSource
в качестве типа элемента:
Для преобразования из Sytem.Drawing.Bitmap
в BitmapSource
см., Например, этот вопрос: быстрое преобразование Bitmap в BitmapSource wpf , или это: Загрузить BitmapImage WPF из System.Drawing.Bitmap
public class ViewModel
{
public ObservableCollection<BitmapSource> Images { get; }
= new ObservableCollection<BitmapSource>();
public void AddImage(System.Drawing.Bitmap bitmap)
{
Images.Add(Convert(bitmap));
}
public static BitmapSource Convert(System.Drawing.Bitmap bitmap)
{
...
}
}
Назначить экземпляр модели представления для DataContext из представление и заполните коллекцию:
public partial class MainWindow : Window
{
private readonly ViewModel viewModel = new ViewModel();
public MainWindow()
{
InitializeComponent();
DataContext = viewModel;
}
}
Свяжите ListBox следующим образом:
<ListBox ItemsSource="{Binding Images}">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>