【发布时间】:2010-09-22 17:32:06
【问题描述】:
我有一个 Windows 窗体应用程序,它有一个包含 WPF UserControl 的 ElementHost... 在我的 WPF 中,我有一个非常简单的 ListView:
<ListView Margin="4" ItemsSource="{Binding Notifications}">
<ListView.View>
<GridView>
<GridViewColumn Header="FirstName" DisplayMemberBinding="{Binding FirstName}" />
<GridViewColumn Header="LastName" DisplayMemberBinding="{Binding LastName}" />
<GridViewColumn Header="Address" DisplayMemberBinding="{Binding Address}" />
<GridViewColumn Header="City" DisplayMemberBinding="{Binding City}" />
<GridViewColumn Header="State" DisplayMemberBinding="{Binding State}" />
<GridViewColumn Header="Zip" DisplayMemberBinding="{Binding Zip}" />
</GridView>
</ListView.View>
</ListView>
如果我的来源有 10 个项目,则表单会在不到一秒的时间内加载。如果我的来源有 1000 个项目,则需要 7 秒!!!我的计时器只考虑加载(而不是获取物品需要多少时间)。
所以我的问题是:
使用 ElementHost 是一场噩梦吗?
WPF 数据绑定是一场性能噩梦吗?
ListView 是废话吗? (顺便说一句,与 WPFToolkit 的 DataGrid 的结果相同)?
【问题讨论】:
-
所以我会用一个答案来问您的问题:您是否认为按照规定使用包含 1000 个项目的开箱即用的 WPF 列表视图应该消耗 2GB 内存并需要 7 秒才能加载?您认为这是代表 WPF 设计者的优秀软件工程的结果吗?
标签: wpf performance listview datagrid elementhost