Alles, ich versuche, eine WPF DataGrid
Schleife mit einem a für jede Schleife, um die Hintergrundfarbe von fehlerhaften Zellen zu ändern. Ich habe viele Fragen geprüft, aber ich muss noch eine ausreichende Antwort finden. Was ich bisher habe, istLooping durch WPF DataGrid Verwenden von Foreach
public void RunChecks()
{
const int baseColumnCount = 3;
foreach (DataRowView rv in dataGrid.Items)
{
for (int i = baseColumnCount; i < dataGrid.Columns.Count; i++)
{
if (!CheckForBalancedParentheses(rv.Row[i].ToString()))
{
Color color = (Color)ColorConverter.ConvertFromString("#FF0000");
row.Background = new SolidColorBrush(color); // Problem!
}
}
}
}
Das Problem ist, dass, um die Background
Farbe einer Zeile in meinem DataGrid
ich mit dem DataGridRow
Objekt mit den DataRowView
rv
ascociated arbeiten muß geändert werden.
Wie bekomme ich einen Verweis auf die DataGridRow
vom Objekt rv
(DataRowView
)?
Danke für Ihre Zeit.
Bearbeiten. Auf der Grundlage des folgenden Hinweises habe ich nun den folgenden Stil, der mit dem Mouse-Over-Ereignis arbeitet und die Vorder- und Rückseite der betreffenden Zelle festlegt. Allerdings bin ich wirklich verloren, wie man die Backcolor auf eine Zelle zur Laufzeit in meinem Code oben anwendet. Die XML-Stil ist
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontWeight" Value="ExtraBold" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
Vielen Dank für Ihre Zeit. Ich werde deinen Rat annehmen und anfangen zu lesen. Ich habe auch versucht, Farbe und ganze Spalte, wieder ohne Glück. Ich habe eine andere Frage gestellt [http://stackoverflow.com/questions/15644105/change-the-background-color-of-entire-column-of-wpf-datagrid-at-runtime], wenn Sie mit dem Geld verbunden werden können und will die rep. Nochmals vielen Dank ... – MoonKnight
@Killercam: Die Idee ist die gleiche für Zeilen und Spalten. Wenn das UI-Objekt eine Eigenschaft (in diesem Fall eine Farbe) enthält, die entweder durch direkten Zugriff oder durch Bindung geändert werden kann, verwenden Sie die Bindung von Ihrem Modelview-Objekt. – Tigran
Danke. Nachdem ich ein Kapitel über ein Buch über Stile, Auslöser usw. gelesen habe, habe ich jetzt die Farbe der Reihe bei einem Mausüber-Ereignis geändert. Ich bin jedoch verloren, wie man eine Zelle/Zeile in der erforderlichen Farbe aus dem Code zur Laufzeit unter Verwendung dieses Stils ändert. Wenn Sie hier Hilfe anbieten können, wäre es sehr hilfreich ... Ich habe die Frage bearbeitet, um den Stil zu zeigen, den ich habe. – MoonKnight