【问题标题】:Listview vs datagrid列表视图与数据网格
【发布时间】:2011-03-11 14:33:11
【问题描述】:

与使用列表视图相比,使用数据网格控件的主要优势是什么?什么时候应该使用每一个?

【问题讨论】:

    标签: .net wpf listview gridview datagrid


    【解决方案1】:

    需要考虑Colin Eber 在DataGrid vs GridView 讨论中声明的几点:

    • ListView (GridView) 是开箱即用的只读控件。标准解决方案是将列表与由文本框组成的“详细信息视图”同步
    • DataGrid 允许就地编辑数据
    • DataGrid 执行事务编辑(该行被视为一个原子)
    • DataGrid 支持自动生成列
    • DataGrid 有一个 RowDetails 元素(如果你喜欢那种东西!)
    • DatGrid 几乎支持 ListView 所做的一切,多种选择模式、样式等...

    还有一个重要的:

    • DataGrid 具有通过单击列标题的内置排序支持。虽然将排序添加到 ListView/GridView 是 absolutely possible,但我更愿意在 DataGrid 中提供开箱即用的此类功能。

    【讨论】:

    • 性能怎么样?一个包含 200 个项目(8 列)的 Datagrid 按一列分组需要 20s + 在我的机器上进行渲染。
    • @Firo:这绝对不是 DataGrid 的问题。性能瓶颈肯定在其他地方。
    • @Liero 我用 wpf 工具包数据网格交换了数据网格,问题就消失了。这绝对是普通 wpf 数据网格的问题。我测试了用分组来衡量需要很长时间
    • 我不知道这个性能问题,但它似乎已在 WPF4.5+ 中得到修复
    【解决方案2】:

    我已经放弃了 .Net 4 中 DataGrid 的 ListView,因为模板化列更容易。

    Layout也比较明智,不用记得设置Horizo​​ntalContentAlignment为Stretch,让单元格内容覆盖单元格。另一个不错的功能是在 DataGrid 上编辑模板,这让我在编辑单元格时不必使用 CellTemplateSelector 来获得不同的控件。

    【讨论】:

    • 感谢您的信息。列中数据更改的事件、排序/过滤数据的难易程度是否有任何差异?还是都大同小异?
    • 我不确定,因为我使用绑定到模型来排序、过滤和获取数据更新通知。但为此,ListView 和 DataGrid 看起来很相似。
    • 我当前的应用程序有数据库>实体框架>可观察集合(在视图模型中)>列表视图。对我来说重要的是我希望在数据库数据更改时更新数据网格中的数据。不知道这有多简单,但现在正在研究它。
    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多