Чтобы загрузить изображения из Интернета, см. Этот предыдущий вопрос SO - как можно загрузить и сохранить изображения из Интернета .
Разница с привязкой изображения в изолированном хранилище заключается в том, что вам необходимо привязать объект BitmapImage, который вы инициализируете из объекта связанного кода. Я переименовал вашу собственность в «ThumbImage» из «ThumbURL», чтобы показать разницу.
Итак, в XAML:
Image Width="110" CacheMode="BitmapCache" Source="{Binding ThumbImage}"
И в вашем связанном объекте - при условии, что это изображение не изменяется - если это произойдет, вам придется соответствующим образом вызвать событие измененного свойства. (код отредактирован для решения проблемы сериализации классов).
private string _thumbFileName;
public string ThumbFileName
{
get
{
return _thumbFileName;
}
set
{
_thumbFileName = value;
OnNotifyChanged("ThumbFileName");
OnNotifyChanged("ThumbImage");
}
}
[IgnoreDataMember]
public BitmapImage ThumbImage
{
get
{
BitmapImage image = new BitmapImage();
IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication();
string isoFilename = ThumbFileName;
var stream = isoStore.OpenFile(isoFilename, System.IO.FileMode.Open);
image.SetSource(stream);
return image;
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnNotifyChanged(string propertyChanged)
{
var eventHander = PropertyChanged;
if (eventHander != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyChanged));
}
}
(Отредактировано, чтобы добавить ссылку на загрузку изображения в первую очередь)