Вы можете создать коллекцию путей к изображениям и добавить к ней каждый путь к вновь создаваемому изображению.Теперь вы можете привязать свою обертку к этой коллекции.
Вы можете реализовать эту коллекцию в классе ViewModel, а затем сделать этот класс ViewModel вашим DataContext и связать вашу wrapPanel с этой коллекцией с помощью вашего конвертера.
Редактировать: Вот примеры файлов:
MainWindowViewModel.cs:
using System;
using System.ComponentModel;
using System.Collections.ObjectModel;
namespace wpfJpegBindingSample
{
class MainWindowViewModel : INotifyPropertyChanged
{
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
// Create the OnPropertyChanged method to raise the event
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
#endregion
//constructor
public MainWindowViewModel()
{
m_imagesList = new ObservableCollection<Uri>();
}
//collection of images' Uris
private ObservableCollection<Uri> m_imagesList;
//property for the collection (so you can bind to it)
public ObservableCollection<Uri> ImagesList
{
get
{
return m_imagesList;
}
}
//an Add method that update the bindings
public void Add(Uri uri)
{
ImagesList.Add(uri);
OnPropertyChanged("ImagesList");
}
}
}
MainWindow.xaml.cs:
using System.Windows;
namespace wpfJpegBindingSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = m_viewModel = new MainWindowViewModel();
}
private MainWindowViewModel m_viewModel;
}
}
MainWindow.xaml:
<Window x:Class="wpfJpegBindingSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListView ItemsSource="{Binding ImagesList}">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<Image Source="{Binding}"/>
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Window>
Как вы можетевидите, в модели представления мы определили коллекцию Uris изображений.В коде основного окна мы устанавливаем объект этой модели представления как контекст данных нашего окна, а в xaml мы устанавливаем источник Item нашего listView (или любого другого элемента управления, который вы выбираете) для привязки свойства ImagesList к нашим данным.context, который является моделью представления.
Наконец, мы можем модифицировать вашу динамическую функцию jpeg creator:
private void dynamicallyJpegCreator(string newImagePath)
{
// Creating Image code
// .....
// Create new image at newImagePath
m_viewModel.Add(new System.Uri(newImagePath, System.UriKind.RelativeOrAbsolute));
}
В этот момент вы получите просмотр списка, отображающий список динамически создаваемых изображений