Как сравнить два элемента сетки данных и изменить конкретный фон строки, если некоторые значения столбцов не равны - PullRequest
0 голосов
/ 30 октября 2019

Я пробовал ниже, но это изменило бы цвет фона строк всей таблицы данных.

 foreach (DataRowView rowww in ResExDataGrid.Items)
  {
    foreach (DataRowView rowView in ResAcDataGrid.Items)
     {
      string textEX = rowww.Row.ItemArray[1].ToString();
      string textAC = rowww.Row.ItemArray[1].ToString();
      // if would set for your row if text mathches
      if (!(textEX == textAC) )
       {
         //changes whole data grid rows background
          ResExDataGrid.RowBackground = Brushes.Red;
       }
   }
}

это с парой ключ-значение. Так должен быть программный поток.

    foreach(KeyValuePair<string,string> dg in DataGrid.Items)
    {
      foreach(KeyValuePair<string,string> dg2 in DataGrid.Items)
      {
       foreach (DataRowView dataRow in DataGrid.Row)
       {
        for (int i = 0; i < DataGrid.Columns.Count; i++)
        {
         if(dg.Value != dg2.Value)
             dataRow.columns[i].Style.BackColor = Color.Red;
        }
       }
      }
    }

Помощь приветствуется.

1 Ответ

0 голосов
/ 11 ноября 2019
for (int i = 0; i < FirstDataGridItemsSourceList.Count; i++)
{
  if (FirstDataGridItemsSourceList[i].Data != SecondDataGridItemsSourceList[i].Data)
  {
    FirstDataGridItemsSourceList[i].ColorChange = SecondDataGridItemsSourceList[i].ColorChange = true;
  }
}

, затем используйте источник данных и используйте привязку к свойству ColorChange. PS - это работает, только если оба списка элементов данных содержат одинаковый номер индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...