У меня есть GridView
в моем приложении, которое в основном содержит изображения следующим образом:
<GridView x:Name="ImageGridView">
<Image x:Name="Image_1"/>
<Image x:Name="Image_2"/>
<Image x:Name="Image_3"/>
</GridView>
с этим в codebehind для изображений для загрузки:
public void SetImages()
{
StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Image_1.Source= new BitmapImage(new Uri(localFolder.Path + "/Image_1.png"));
Image_1.Source= new BitmapImage(new Uri(localFolder.Path + "/Image_2.png"));
Image_1.Source= new BitmapImage(new Uri(localFolder.Path + "/Image_3.png"));
}
GridView показывает изображения очень хорошо. Тем не менее, у меня также есть класс, который меняет цвета этих изображений на основе существующих значений как следующие:
![Changing the Images Colors](https://i.stack.imgur.com/nSJiX.png)
Это означает, что источники изображений не меняются, и пути к этим изображениям также остаются без изменений. Меняются только цвета на этих изображениях, как показано на фотографиях.
Однако, когда задача изменения цвета завершена и изображения обновляются в папке LocalState приложения, они не обновляются в изображениях GridView.
![Ithe Images are not updated in the UI](https://i.stack.imgur.com/A34hQ.gif)
Я также пытался создать заметную коллекцию с изображениями, о которых идет речь. Привязал GridView к этой коллекции, и при каждом обновлении цвета я включал бы это:
GridView.ItemsSource = null;
GridView.ItemsSource = ImagesCollection;
Это работало бы, изменяя некоторые изображения, но не другие. это происходит случайно. Если есть способ дождаться первого перед выполнением второго, это может сработать!
Вопрос в том, как попросить GridView перезагрузить его содержимое? Обновить свой контент? очистить кэш и повторно загрузить изображения?