DataGrid-Zeile Hintergrund Basiert Auf Die Zelle Wert
Ich arbeite derzeit an einem C# WPF datagrid. Ich habe ein DataGrid, welches automatisch generierten Spalten und der code stellt eine Verbindung zu einer SQLite-Datenbank und erstellt ein dataset und dann dieses dataset als das DataGrid ItemsSource.
Unten ist der code, mit dem XAML DataGrid
<DataGrid AutoGenerateColumns="True"
Margin="12,71,12,32"
Name="tblLog"
ColumnWidth="*"
CanUserResizeRows="False"
AreRowDetailsFrozen="False"
CanUserAddRows="True"
CanUserDeleteRows="True"
IsReadOnly="True"
MouseDoubleClick="tblLog_MouseDoubleClick">
</DataGrid>
Und unten ist der code zum festlegen der ItemsSource für die DataGrid -
try
{
DataSet ds = new DataSet();
SQLiteDataAdapter da = new SQLiteDataAdapter(query, db.conn);
da.Fill(ds);
//tblGrid.AutoGenerateColumns = true;
tblGrid.ItemsSource = ds.Tables[0].DefaultView;
}
catch (SQLiteException ex)
{
MessageBox.Show("Unable to retrieve logins from database.\n\n" + ex.Message + "\n\nError Code: " + ex.ErrorCode);
}
Den Spalten, die angezeigt werden in der Datenbank (automatisch generiert) sind ID, Datum, Zeit, status.
Was brauche ich, um in der Lage zu tun ist, wenn der Wert in einer Zeile der Spalte status gleich Fehler ändern Sie die Hintergrundfarbe der Zeile.
Ich nehme an, ich muss hinzufügen, eine Art von styling-tags und DataTriggers innerhalb des DataGrid-tags aber nicht sicher, was ich brauche. Alles, was ich versucht habe, den code, der legt die ItemsSource-zeigt eine Fehlermeldung, dass die Quelle leer sein muss, bevor Sie die ItemsSource.
Vielen Dank für jede Hilfe, die Sie bieten können.
- Die Art, wie wir Stil von Zellen und Zeilen ist die Verwendung Unbenannte also das ungestanzte Stile. Sie gelten für alle Elemente, wenn wir angeben, Ihre TargeType. codeproject.com/KB/WPF/WPFDataGridExamples.aspx
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einen DataTrigger, dies zu tun.
Hier ist eine schnelle Probe. Ich erstellte eine Klasse mit dem Namen Person mit den Eigenschaften Name, Alter und Aktiv.
Im Konstruktor des Hauptfensters, füge ich 3
Person
Objekte zu einer Liste, dann binden Sie diese Liste, um dieDataGrid
.Dann in der XAML-Code für das MainWindow erstelle ich einen DataTrigger Stil als Ressource.
Was das auslösen tut, ist es nimmt den Wert aus der
Active
Feld aus derPerson
Objekt, das in der DataGridRow, und wenn dieser Wert false ist, dann wird die Hintergrundfarbe der Zeile in rot.