【发布时间】:2016-03-05 08:00:41
【问题描述】:
我的 WPF 应用程序中有一个 DataGrid 控件。它绑定到模型对象的 ObservableCollection。每个 Model 对象都有一个构造函数,它将 EF-Model 对象用作参数。应用用户输入正确的凭据后,有一个方法,应该执行。此方法从 DB(大约 1000 个 EF-Model 对象)异步加载数据。加载后,我将每个对象传递给模型构造函数(类似MyEFModelObjectsCollection.ForEach(o => MyObservableCollection.Add(new Model(o))))。但是将这千个对象加载到我的 DataGrid 中需要很长时间。我该如何处理?
【问题讨论】:
-
您可以尝试创建一个 ObervableCollection 并在构造函数中传入模型。然后将这个新的 ObervableCollection 设置为 DataGrid 的 ItemsSource
-
DataGrid 很慢。可以用 ListView / GridView 吗?
-
@Frisbee,看来,你是对的。在我向 ObservableCollection (AddRange()) 添加新方法后,我仍然花了太多时间来加载数据,但在将我的集合绑定到列表视图后,问题已经解决。你能解释一下,为什么 datagrid 需要这么多时间来加载数据吗?
-
我通常使用 Elisium.extra nuget 包作为我的 wpf 应用程序的界面。它有相当漂亮的数据网格。我觉得它非常有用,但它并不烦我,因为它太慢了。
标签: c# wpf entity-framework asynchronous datagrid