Для правильного обновления привязки данных вы можете использовать INotifyPropertyChanged . Просто добавьте ссылку на System.ComponentModel:
using System.ComponentModel;
Затем наследуйте интерфейс:
MyWindow : INotifyPropertyChanged
Затем добавьте следующий код:
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
Наконец, добавьте вашу собственность, к которой вы хотите привязать.
private BitmapImage currentImage;
public BitmapImage CurrentImage{get{return currentImage;} set{currentImage=value;NotifyPropertyChanged("CurrentImage");}}
Наконец, в вашем xaml измените привязку на {Binding CurrentImage}, а затем для окна установите для контекста данных относительный источник self ... это будет свойство для окна:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Это должно привести к правильной работе привязки. Для выполнения операций в отдельном потоке потребуется диспетчер