У меня есть datagrid с столбцом шаблона. Шаблон имеет изображение:WPF DataGrid - обновить изображение в столбце с использованием BackgroundWorkerProcess
<Image HorizontalAlignment="Left" Name="ImageProduct" Stretch="None" VerticalAlignment="Center" Grid.Row="0" Grid.Column="0" Source="{Binding Path=ProductImage, Mode=OneWay}" RenderOptions.BitmapScalingMode="HighQuality"/>
сетка прокручивается очень медленно, потому что ProductImage lazilly загружает частный объект BitmapImage как пользователь прокручивает сетку. Я думал использовать другой поток для загрузки частной переменной (за свойством ProductImage). У меня возникают проблемы с моим кодом из-за разных причин ... Единственное исключение: я могу только обновлять интерфейс пользователя в потоке STA, а другой - источник зависимости не может быть в другом потоке, чем в раковине зависимости (?)
Я не могу придумать, как это сделать. Код для сетки выглядит примерно так с неудачной попытки в BackgroundWorker:
var productVMList = GetProducts();
_window.ReceivingBatchProductsGrid.ItemsSource = productVMList;
var setProductImageWorker = new BackgroundWorker();
setProductImageWorker.DoWork += setProductImageWorker_DoWork;
setProductImageWorker.RunWorkerAsync(productVMList);
А вот DoWork:
вар продукции = (ObservableCollection) e.Argument;
foreach (var product in products)
{
product.SetProductImage();
}
Любые мысли?