Hallo Ich habe eine DatagridView und ich möchte es Hintergrundfarbe abhängig von den Daten in jeder Zeile ändern.Update DatagridView Cell Hintergrundfarbe basierend auf Zeilendaten
Ex.
| Person 1 | Person 2 | Person 3 |
| ---- 100 ---- | --- 200 ----- | ----- 150 ---- |
| ---- 300 ---- | --- 100 ----- | ------ 50 ---- |
In der ersten Zeile möchte ich, dass "100" eine rote Hintergrundfarbe hat und "200" grün. Or. Der niedrigste Wert = rot höchste = grün
Nun ist die Sache, dass ich eine BindingList für meine Daten verwende, und es wird async mit INotifyPropertyChanged aktualisiert. Also muss ich jedes Mal, wenn einer der Werte aktualisiert wurde, überprüfen.
Hat das DataGridView irgendein Ereignis, das nützlich wäre?
CellFormatting ist ein Ereignis, sodass Sie keine Unterklasse erstellen müssen. Sie können das Ereignis einfach abonnieren. Beide erreichen dasselbe. – Tergiver
Thx, das OnCellFormatting-Ereignis sieht vielversprechend aus. Gerade hat einen kleinen Test privat void prisListeView_CellFormatting (object sender, DataGridViewCellFormattingEventArgs e) { if (e.Value! = Null) if (e.ColumnIndex == 3 && (dezimal) e.Value> 0) { e.CellStyle.BackColor = Farbe.DodgerBlue; } } Aber wie ändere ich den Stil für die anderen Zellen? Ex. In der obigen Spalte 3 haben sich geändert. Wie ändere ich dann den Stil für die anderen Zellen? – gulbaek
Nicht sicher über die Leistung in dieser Lösung, aber es funktioniert :-) Und wenn jemand wissen muss, wie die anderen Zellen Arten zu ändern, hier ist der Code datagridview1.Rows [e.RowIndex] .Cells [ "myColumn"]. Style.BackColor = Color.DeepPink; – gulbaek