【问题标题】:DataGridView Sort - Keep two in syncDataGridView 排序 - 保持两个同步
【发布时间】:2012-07-02 16:40:21
【问题描述】:

如果我在 C# Win Forms 应用程序中有两个 DataGridView 项,并且它们始终设置相同的列,我如何确保它们始终以相同的方式排序?

当一个网格或另一个网格排序时,我可以收到通知,但如果我尝试使用该通知以相同的方式对另一个网格进行排序,我会得到堆栈溢出(原因很明显)。

我确信我可以通过一些丑陋的 hack 来解决堆栈溢出问题,但我认为必须有一个正常的方法来做到这一点。当用户对它们进行排序时,我不能成为第一个需要保持两个 DataGridView 同步的人。

【问题讨论】:

    标签: c# .net winforms .net-3.5 datagridview


    【解决方案1】:

    我得到一个堆栈溢出(原因很明显)。

    如果没有示例代码,它们可能并不明显。您是否因为每次更新通知都会更新另一个网格导致无限循环而导致堆栈溢出?

    那你为什么不像这样保持布尔值来跟踪状态:

    bool Grid1Fired = false;
    bool Grid2Fired = false;
    
    void handler_Grid1(..)
    {
        if(Grid1Fired == false && Grid2Fired == false)
        {
            Grid1Fired = true;
            SortGrids();
        }
    }
    void handler_Grid2(..)
    {
        if(Grid1Fired == false && Grid2Fired == false)
        {
            Grid2Fired = true;
            SortGrids();
        }
    }
    
    void SortGrids()
    {
        if(Grid1Fired)
        {
            // sort grid 2
        }
        else if(Grid2Fired)
        {
            // sort grid 1
        }
        Grid1Fired = false;
        Grid2Fired = false;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2013-11-22
      相关资源
      最近更新 更多