Благодаря this link (предоставленный @Monty) Я смог решить проблему.
Вы должны форматировать каждую ячейку по себе, так что вы должны подключить на SetCellFormat
-Event каждой колонке:
AddHandler column.SetCellFormat, AddressOf FormatGridRow
В EventHandler можно проверить, например, значение ячейки другого столбца той же строки и соответственно изменить цвет текущей ячейки. Когда каждая ячейка строки форматируется таким образом, кажется, что строка в целом отформатирована.
Private Sub FormatGridRow(ByVal sender As Object, ByVal e As DataGridFormatCellEventArgs)
Dim Cell As DataGridColumnStyle = sender
Dim ColumnStyles As GridColumnStylesCollection = Cell.DataGridTableStyle.GridColumnStyles
Dim columnIndex As Integer = ColumnStyles.IndexOf(ColumnStyles.Item("ColumnName"))
If Cell.DataGridTableTableStyle.DataGrid(e.Row, columnIndex).ToString() = "SomeValue" Then
e.BackBrush = New SolidBrush(Color.Red) 'this does only change the Cell`s background
End If
End Sub
взглянуть на это, может быть, это поможет вам https://msdn.microsoft.com/en-gb/library/ms996485.aspx или этот сайт http://www.codemag.com/article/0301071 – Monty
Вы просто зацикливаете все ячейки строки и редактируете фон таким образом. – Oceans