How do I pass information using a WebClient request to identify a loadable object?

I have a set of custom objects called DataItems that contain the URIs of the images that I want to upload and paste into the collection for my Silverlight . > for use.

When I process each DataItem, I get its SourceUri (for example, http: //..../picture001.png ") and start the download :

void LoadNext()
{
    WebClient webClientImgDownloader = new WebClient();
    if (loadedItemIndex < RegisteredDataEntries.Count())
    {
        DataItem dataItem = RegisteredDataEntries[registeredIdCodes[loadedItemIndex]];
        if (dataItem.Kind == DataItemKind.Image)
        {
            webClientImgDownloader.OpenReadCompleted += 
                new OpenReadCompletedEventHandler(webClientImgDownloader_OpenReadCompleted);
            webClientImgDownloader.OpenReadAsync(new Uri(dataItem.SourceUri, 
                UriKind.Absolute));
            webClientImgDownloader.AddObject(dataItem); //????????????????????
            webClientImgDownloader.Headers["idCode"] = dataItem.IdCode; //?????????????
            webClientImgDownloader.ResponseHeaders["idCode"] = dataItem.IdCode; //?????????????
        }
    }
    else
    {
        OnLoadingComplete(this, null);
    }
}

Then, when the download of this image has completed , I save the image in the collection :

void webClientImgDownloader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    dataItemIdCode = e.DataItem.IdCode; //???????????????????
    dataitemIdCode = ((DataItem)sender).IdCode; //?????????????????????

    BitmapImage bitmap = new BitmapImage();
    bitmap.SetSource(e.Result);

    Image image = new Image();
    image.Source = bitmap;
    Images.Add(dataItemIdCode, image);
}

IdCode DataItem OpenReadCompleted, IdCode?

:

, , ::

webClientImgDownloader.OpenReadAsync(new Uri(dataItem.SourceUri, 
    UriKind.Absolute), dataItem);
...
DataItem dataItem = e.UserState as DataItem;
+5
1

OpenDataAsync , . OpenReadCompletedEventArgs, UserState ( AsyncCompletedEventArgs).

+6

All Articles