在我的应用程序中,我有一个 WPF 窗口,其中包含一个 DataGrid。在 Window_Loaded 事件中,我从服务器获取 JSON 数据,并将其反序列化并转换为 List,然后将其绑定到我的数据网格中。这种方式一切都运作良好。
问题是,请求部分的代码需要时间,整个窗口似乎变成了白色,没有加载任何元素,包括数据网格。我想让请求部分异步化,就像在 AJAX 中我们显示一个加载器图像,而当加载完成时使用回调函数显示内容。
具体步骤如下:
1. 加载窗口和元素数据网格按钮等。 2. 向服务器发出网络请求,在标签中显示“正在加载数据...”。 3. 触发事件或其他操作,通知数据已经加载完毕,然后将数据网格绑定到列表,以使整个网络请求过程中应用程序保持响应和活动状态。
以下是我在 Window_Loaded 事件处理程序中使用的当前非异步代码。
我找到了这个链接(点击查看),但我不确定它如何适用于我的问题。欢迎任何帮助或想法来解决这个问题。
问题是,请求部分的代码需要时间,整个窗口似乎变成了白色,没有加载任何元素,包括数据网格。我想让请求部分异步化,就像在 AJAX 中我们显示一个加载器图像,而当加载完成时使用回调函数显示内容。
具体步骤如下:
1. 加载窗口和元素数据网格按钮等。 2. 向服务器发出网络请求,在标签中显示“正在加载数据...”。 3. 触发事件或其他操作,通知数据已经加载完毕,然后将数据网格绑定到列表,以使整个网络请求过程中应用程序保持响应和活动状态。
以下是我在 Window_Loaded 事件处理程序中使用的当前非异步代码。
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);
我找到了这个链接(点击查看),但我不确定它如何适用于我的问题。欢迎任何帮助或想法来解决这个问题。