私のアプリケーションには、DataGrid
というWPFウィンドウがあります。 Window_Loaded
イベントで私はサーバーからJSONデータを取得し、それをデシリアライズしてList<T>
に変換すると、それをデータグリッドにバインドします。すべてがこのようにうまく機能しています。C#WPFで非同期のWebリクエストを作成する方法
問題:
しかし、コードの要求部には時間がかかり、全体のウインドウがデータgrid.I含めていない要素をロードして白いようだ我々は示してちょうどAJAXのように要求部の非同期を作りたいです何かがロードされている間のローダーイメージと、ロードされたときにコンテンツを表示するためのコールバック関数を使用します。ステップバイステップで
は
- ロードウィンドウや要素データグリッドボタンなど。サーバーやショーへ
- メイクのWeb要求のデータをロードしている.. 'ラベルで、おそらく。
- データがロードされたことを通知するイベントまたは何かを起動し、データグリッドをリストにバインドして、Webリクエスト全体のアプリケーション中にアプリケーションが応答性とアクティブのままになるようにします。ここで
は私がthisリンクを発見した
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);
Window_Loadedイベントハンドラで使用している現在の非非同期コードですが、私はそれは私の問題にも適用するかどうかはわかりませんよ。これについてどうやって行くかについての助けやアイデアは大歓迎です。
「ディスパッチャ」とは、 –