【问题标题】:Synchronization of datagridview and datatabledatagridview和datatable的同步
【发布时间】:2010-05-04 12:00:14
【问题描述】:

我正在按日期对数据表进行排序

TableWithOnlyFixedColumns.DefaultView.Sort = "TradingDate asc";

然后将此数据表分配给datagridview以显示排序后的记录。

datagridView1.DataSource =TableWithOnlyFixedColumns.DefaultView;

但问题是当数据表被更新时,意味着根据数据表发生变化,datagridview 也会更新它的记录,但我希望当上面的语句再次执行时它应该更新它的记录。 如果我手动将数据表中的记录逐个单元格复制到 datagridview 中,则 datagridview 中的记录不会按日期排序。

为此我能做些什么?

【问题讨论】:

    标签: datagridview datatable


    【解决方案1】:

    当给定DataSource 时,DataGridView 本质上是数据绑定的。您可以暂停通知(例如,通过BindingSource 并将RaiseListChangedEvents 设置为false),但这只是 通知 - 它仍在查看相同的 IListSource / IList 等。

    要获得真正孤立的数据,可以:

    • 不要数据绑定(手动设置单元格),或者
    • 对数据进行快照/克隆

    【讨论】:

    • @Marc Gravell,如果我手动设置单元格,它不会以排序形式给出输出,因为我已经按日期对记录进行了排序,如果我可以通过其他方法进行排序,那么它将是最好的me.Or我们如何将数据表的数据克隆到datagridiew?
    • @Marc Gravell,如果我手动设置单元格,则没有我在问题上发布的排序记录:stackoverflow.com/questions/2764879/…
    • @Harikrishna - 排序很棘手,通过DataGridView 支持的两种方法中的任何一种。 IBindingList[View] 实施起来很痛苦。建议你克隆DataTable...
    • @Marc Gravell,如何克隆数据表?
    • @Harikrishna - 一个DataTable 实例有一个Clone() 方法;设置myGrid.DataSource = myDataTable.Clone();
    猜你喜欢
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多