WPF中ListView和DataGrid的区别?
Posted
技术标签:
【中文标题】WPF中ListView和DataGrid的区别?【英文标题】:Difference between ListView and DataGrid in WPF? 【发布时间】:2011-06-13 11:58:36 【问题描述】:我必须从数据库中检索一些问题并将它们动态地显示在用户屏幕上。我还需要在网格视图的列中添加一些控件,基本上是一个问题和一个答案的输入框。
请建议我应该使用哪一个? ListView
或 DataGrid
?
【问题讨论】:
我们说的是 WPF 还是 WinForms? Listview vs datagrid 的可能重复项 【参考方案1】:嗯,在 WPF 中,ListView
和 DataGrid
之间的区别只是一个。编辑。您需要编辑使用DataGrid
,否则使用ListView
。您也可以在ListView
中进行编辑,但在DataGrid
中构建更容易。否则DataGrid
能显示的,ListView
就能显示。
DataGrid
支持而ListView
不支持的一件事(开箱即用)是自动列生成。
您可以阅读this article on CodeProject 以更好地了解DataGrid
以及ListView
和DataGrid
之间的主要区别。
【讨论】:
肯定有更多不同。其中之一是列大小。在 datagrid 中,您可以拉伸列以填充网格大小,而在 listview 中则不能。据我所知,ListView 是在 WPF 3.5 中引入的,但后来被 DataGrid 取代,但出于兼容性原因,它仍然存在 和列排序。 值得注意的是,DataGrid
中的编辑可以使用 IsReadOnly="True"
关闭
有谁知道对大量行使用虚拟模式时哪个更快?
ListView 不支持百分比列宽。【参考方案2】:
我不是 WPF 专家,但它只是控件本身的术语。
当考虑 ListView 时,想想 Windows 资源管理器,您可以在其中查看所有文件的窗格,这就是 ListView。
当考虑数据库时,它的通常(我说通常)是一个数据网格,将鼠标悬停在 gridview 标签上并阅读描述。
您想要一个网格视图的一些非常明显的原因是它可以直接编辑。您可以让您的用户在其中输入问题和答案。请注意,由于 ListViewItem 是一个内容控件,您也可以像 this article does 一样轻松自定义它。
也看看这个GridView tutorial 是否有帮助。
你没有给出太多关于你如何需要 UI 的描述,但你可以到处玩,做任何你喜欢的事情。
您甚至可以为 [问题 + 答案输入框] 制作用户控件。然后你可以使用 StackPanel(甚至是列表视图)来列出它们。
希望对您有所帮助。
【讨论】:
以上是关于WPF中ListView和DataGrid的区别?的主要内容,如果未能解决你的问题,请参考以下文章
WPF ListBox/ListView/DataGrid 列表滚动与虚拟化
WPF 实现 DataGrid/ListView 分页控件(转)
WPF 实现 DataGrid/ListView 分页控件(转)