WPF DataGrid与Windows窗体DataGridView

WPF DataGrid与Windows窗体DataGridView,wpf,winforms,datagrid,datagridview,wpfdatagrid,Wpf,Winforms,Datagrid,Datagridview,Wpfdatagrid,我有WPF和Windows窗体方面的经验,但是我只使用了Windows窗体DataGridView,而没有使用WPF DataGrid(据我所知,WPF DataGrid仅包含在.Net 4中,或者可以从Codeplex添加到.Net 3.5中)。我将要开发一个应用程序,该应用程序大量使用这些控件之一来处理大量数据,并且WPF DataGrid存在读取性能问题,因此我可能会坚持使用Windows窗体DataGridView。。是这样吗 我不想使用第三方控件 对于大量数据,Windows窗体Dat

我有WPF和Windows窗体方面的经验,但是我只使用了Windows窗体DataGridView,而没有使用WPF DataGrid(据我所知,WPF DataGrid仅包含在.Net 4中,或者可以从Codeplex添加到.Net 3.5中)。我将要开发一个应用程序,该应用程序大量使用这些控件之一来处理大量数据,并且WPF DataGrid存在读取性能问题,因此我可能会坚持使用Windows窗体DataGridView。。是这样吗

我不想使用第三方控件

对于大量数据,Windows窗体DataGridView是否比WPF DataGrid提供了显著的性能

如果我要使用WPF,我更愿意使用.NET3.5SP1,除非.NET4中的DataGrid明显更好


此外,我还想将ADO与DataTable一起使用,我觉得它更适合Windows窗体。

WPF DataGrid速度更快,我认为。但是,当我尝试使用WPF DataGrid处理大量数据(很多列(大约40-50)和行)时,它的工作速度很慢(水平滚动)。来自第三方控件的DataGrid工作得更好(我使用Infragistics XamDataGrid)。

为了满足您的需要,除非您有其他要求引导您使用WPF,否则我建议使用WinForms DataGridView

WPF DataGrid是通过Codeplex发布的,作为“带外”版本,也就是说,这些控件最终将进入WPF API,但是在Codeplex上很早就发布了,这样我们就可以在下一个主要的.NET版本之前从中受益。您可以使用.NET 4.0或codeplex数据网格。据我所知,他们是一模一样的。WPF DataGrid可以很好地处理数据表。请参阅我下面文章中的示例:

然而,WPF框架和视觉效果比WinForms稍微重一些。此外,WinForms DataGridView非常成熟

对于非常大的数据集,WinForms DataGridView有一个WPF DataGrid中没有的功能,这对于非常大的网格(数百万行)至关重要,这是一种虚拟模式:

也称为数据虚拟化。在此模式下,您可以告诉网格数据中有多少行,然后处理事件以填充单元格。这个比例很好。我用它来处理大型复杂的网格

WPF有UI虚拟化,这是UI控件回收的一种形式,但不是数据虚拟化


希望这能有所帮助。

检查Xeed datagrid是否有WPF,它比WPF datagrid好得多,但这是第三方,但值得。

对于任何做出此决定的初学者(如我),WindowsForms非常容易使用。当然,使用WPF还有很多其他原因可能会影响您的决策,但是如果您的项目主要是一个DataGrid,那么WinForms就是一个不错的选择。

如果您首先填充DataGrid的ItemsSource,您可以将DataGrid WPF用作DataGridView

MyDataGrid.ItemsSource = MySource;
MyDataGrid.Columns[0].Width = 300;
MyDataGrid.Columns[0].Header = "MyName";

相比之下,WPF DataGrid的速度要慢得惊人。我应该补充一点:我已经在.Net 4.0中使用了WPF DataGrid来处理大数据,它还可以,它速度较慢,但有一些问题,比如延迟加载-只有在滚动到数据时才查询数据-如果你有一台高规格的机器,它也会有所帮助!我要警告的是,从头开始学习“WPF方式”,例如MVVM,可能比从Win表单过渡更容易。