Bonjour,

J'ai actuellement une application [Silverlight] qui utilise WebClient afin d'accéder à un fichier XML.

Ce fichier XML doit être charger au démarage de l'application car tout est basé sur sont contenu (mise en forme de l'appli/utilisation des données ...) or étant donnée que je fais appel à DownloadStringAsync l'application n'attend pas le chargement du fichier pour continuer ce qui la plante inévitablement.

Ma question est comment attendre le résultat de DownloadStringAsync afin de continuer ?

Voici mon code:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
 
rivate string urlFile;
        private XElement sheets;
        public XmlFile()
        {
            UrlFile = "/Charts.xml";
            string host = (App.Current.Host.Source.AbsoluteUri).Substring(0, App.Current.Host.Source.AbsoluteUri.Length - App.Current.Host.Source.AbsolutePath.Length);
            TakeFileFromUri(host + UrlFile);
        }
        public void TakeFileFromUri(String URL)
        {
            Uri uri = new Uri(URL, UriKind.RelativeOrAbsolute);
            WebClient client = new WebClient();
            client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCallback2);
            client.DownloadStringAsync(uri);
        }
        private void DownloadStringCallback2(Object sender, DownloadStringCompletedEventArgs e)
        {
            string resultBlock;
            if (e.Error == null)
                resultBlock = e.Result;
            else
                resultBlock = e.Error.ToString() + "erreur";
            XmlReader XmlFile = XmlReader.Create(new System.IO.StringReader(resultBlock));
            this.Sheets = XElement.Load(XmlFile);
 
        }
Merci de votre aide