Ich verwende ein Datagrid und ändern Sie die Farbe der Zeilen entsprechend ihren Bedingungen, und ich führe dies programmgesteuert durch. folgen dem Beispiel als mein Datagrid an eine Datatable gebunden ist, habe ich die Informationen direkt aus der DatentabelleProbleme beim Ändern der DataGrid-Farbe mit WPF C#
private void UpdateCor() {
gvDados.UpdateLayout();
for (int i = 0; i <dt.Rows.Count; i ++)
{
var rowContext = (DataGridRow)
gvDados.ItemContainerGenerator.ContainerFromIndex (i);
if (rowContext! = null)
{
if (dt.Rows [i] ["situation"]. ToString(). Equals (1))
rowContext.Background = Brushes.Green;
else
rowContext.Background = Brushes.Red;
}
}
}
Damit lade ich die Farbe meiner Raster aktualisieren kann, auch wenn es nicht die beste Methode ist, angegangen werden. Mein Problem ist dies, wenn ich die Schriftrolle benutze, um die Leiste herunter oder hoch zu gehen, werden die Farben veraltet. Wie verhindere ich das? dass selbst wenn ich die Bar rolle, bleiben die Farben fest?
Dies ist wegen der Virtualisierung. Was Sie versuchen, ist eine sehr schlechte Idee, wahrscheinlich unmöglich, die Arbeit richtig zu machen. Sie sollten dies in XAML mit einem Style und Triggern tun. Es gibt viele Beispiele für Stack Overflow. Aber suche mit Google; Die Suchfunktion hier ist nicht sehr gut. –
Dieser Link: [datatrigger on enum um das Bild zu ändern] (https://stackoverflow.com/questions/13917033/datatrigger-on-enum-to-change-image) könnte Ihnen helfen. wahrscheinlich brauchen nur Setter zu Hintergrundfarbe –