Wie, um Asynchrone Web-Anfragen in C# WPF

In meiner Anwendung habe ich ein WPF-Fenster, das eine DataGrid in es. In Window_Loaded Ereignis bekomme ich JSON-Daten vom server und nach dem Deserialisieren und die Umwandlung in einen List<T> ich binden, dass meine Daten raster. Alles ist in Ordnung, auf diese Weise.

Das problem:

Aber der Antrag Teil des Codes braucht Zeit und die ganzen Fenster scheint, weiß mit keine Elemente geladen, einschließlich der Daten grid.Ich möchte, um eine Anfrage zu Teil asynchron genau wie in AJAX zeigen wir ein loader-Bild zwar etwas geladen wird und dann mit Hilfe einer callback-Funktion, die den Inhalt, wenn es geladen wird.

In Schritt für Schritt

  1. Laden der Fenster und Elemente der Daten-grid-buttons etc..
  2. Machen web-Anfrage an den server und zeigen Sie Daten geladen..' in einem label möglicherweise.
  3. Feuer ein Ereignis oder etwas, das Sie benachrichtigt, dass die Daten geladen hat und dann binden Sie die Daten-grid-Liste, so dass die Anwendung weiterhin reagiert und aktiv während der gesamten web-Anfrage Teil.

Hier ist die aktuelle nicht-async-code, den ich verwende im Window_Loaded event-handler

 WebResponse response = req.GetResponse();
 Stream responseStream = response.GetResponseStream();
 StreamReader sr = new StreamReader(responseStream, Encoding.UTF8);
 string JSON = sr.ReadToEnd();
 List<MyObject> returnedData = JsonConvert.DeserializeObject<List<MyObject>>(JSON);

fand ich diese link, aber ich bin nicht sicher, wie es anwendbar ist, zu meinem problem. Jede Hilfe oder Idee, wie man über diese, ist willkommen.

Schreibe einen Kommentar