Пользовательский интерфейс зависает при загрузке изображенийC#

Место общения программистов C#
Ответить
Anonymous
 Пользовательский интерфейс зависает при загрузке изображений

Сообщение Anonymous »

Я создаю простое настольное приложение «Изображения», и оно работает хорошо.
Приложение получает мои изображения из папки, показывающей их в ItemsControl. Макет страницы представляет собой строковый ключ — (ММ)ГГГГ, а элементы — класс StorageItem.

Код: Выделить всё

                    























VerticalAlignment="Bottom"
HorizontalAlignment="Right"
Visibility="{Binding ProgressBarVisiable}"
Value="{Binding Value}"
IsIndeterminate="False"
Height="25"
Width="25"/>












Свойством Icon является BitmapImage.
Это прекрасно работает, но когда у меня много элементов, страница зависает и ждет, пока загрузить все изображения.

Код: Выделить всё

MediaPage.cs

Код: Выделить всё

test.ItemsSource = App.AllImages;

Код: Выделить всё

MainPage.cs

Код: Выделить всё

App.AllImages = new ObservableCollection();
PublicMethods.GetAllImages(AllImages);

Код: Выделить всё

MediaDynamicView.cs

Код: Выделить всё

public class MediaDynamicView : DynamicView
{
public DateTime YearMonth { get; set; }

//...
}

Код: Выделить всё

DynamicView

Код: Выделить всё

public class DynamicView
{
private string _key;
private ObservableCollection _items;

public string Key
{
get { return _key; }
set { _key = value; OnPropertyChanged(); }
}
public ObservableCollection Items
{
get { return _items;  }
set{ _items = value; OnPropertyChanged(); }
}

//...
}

Код: Выделить всё

ImageItem.cs

Код: Выделить всё

// more properties...

public virtual BitmapImage Icon
{
get { return _icon; }
set { _icon = value; OnPropertyChanged(); }
}
Я знаю, что свойство Icon загружается до MediaPage.cs, показывая это в GridView
что мне сделать, чтобы сделать его асинхронным?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-images
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»