如果行单元格值相同 gridview devexpress winforms c#,上下移动行或更改行颜色?

move Rows up and down or change row color if the row cell value are the same gridview devexpress winforms c#?

我已经可以上下移动行了,但是如果上行的值与下行的值相同,并且如果所有行的值都相同,它就会改变,我需要让它自动上下移动我努力尝试并搜索了很多但没有找到解决方案的颜色请帮助我。

我使用以下代码上下移动

    void uphaya()
    {
        DevExpress.XtraGrid.Views.Grid.GridView view = GVHaya;
        view.GridControl.Focus();
        int index = view.FocusedRowHandle;
        if (index <= 0) return;

        DataRow row1 = view.GetDataRow(index);
        DataRow row2 = view.GetDataRow(index - 1);
        object val1 = row1[OrderFieldName];
        object val2 = row2[OrderFieldName];
        row1[OrderFieldName] = val2;
        row2[OrderFieldName] = val1;

        view.FocusedRowHandle = index - 1;
    }

    void downhaya()
    {
        DevExpress.XtraGrid.Views.Grid.GridView view = GVHaya;
        view.GridControl.Focus();
        int index = view.FocusedRowHandle;
        if (index >= view.DataRowCount - 1) return;

        DataRow row1 = view.GetDataRow(index);
        DataRow row2 = view.GetDataRow(index + 1);
        object val1 = row1[OrderFieldName];
        object val2 = row2[OrderFieldName];
        row1[OrderFieldName] = val2;
        row2[OrderFieldName] = val1;

        view.FocusedRowHandle = index + 1;
    }

我有列名"Category"我需要看看它在下一行中是否相同将行向下移动并再次检查是否相同向下移动等等如果它不能移动它改变行颜色

我尝试使用此代码但它不起作用

  for (int i = 0; i < GVHaya.RowCount; i++)
 if ((((GVHaya.GetRowCellValue(i, "Category").ToString()) == (GVHaya.GetRowCellValue(i -1, "Category").ToString())))) 
          {
              downhaya()
          }

要更改行的颜色,请订阅网格视图的 RowCellStyle 事件。

private void view_RowStyle(object sender, RowCellStyleEventArgs e)
{
     e.Appearance.BackColor =  Color.Red;
}

更多信息here