Ligne De Grille De Données D'Arrière-Plan Basé Sur La Valeur De La Cellule
Je suis actuellement en train de travailler sur un C# WPF datagrid. J'ai un DataGrid qui a auto généré des colonnes et le code se connecte à une Base de données SQLite et crée un dataset et puis ce jeu de données est défini comme le composant DataGrid ItemsSource.
Ci-dessous est le code avec le code XAML de la grille de données
<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>
Et ci-dessous est le code de la ItemsSource de la grille de données
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);
}
Les colonnes qui sont affichées dans la base de données (auto-générée) sont ID, la date, l'heure, l'état.
Ce dont j'ai besoin pour être en mesure de faire est de savoir si la valeur d'une ligne de la colonne état est égale à l'Erreur de changer la couleur de fond de la ligne.
Je suppose que j'ai besoin d'ajouter une sorte de style de balises et de DataTriggers au sein de la grille de tags mais vous ne savez pas ce dont j'ai besoin. Tout ce que j'ai essayé de le code qui définit le ItemsSource affiche un message d'erreur indiquant que la Source doit être vide avant d'ajouter le ItemsSource.
Merci pour toute aide que vous pouvez fournir.
OriginalL'auteur Boardy | 2011-09-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un DataTrigger pour ce faire.
Voici un petit échantillon. J'ai créé une catégorie appelée Personne avec les propriétés Nom, l'Âge, et Active.
Dans le constructeur de la fenêtre principale, j'ai ajouter 3
Person
les objets d'une liste, puis de lier cette liste à laDataGrid
.Puis dans le XAML de la MainWindow, j'ai créer un DataTrigger style comme une ressource.
Ce que ce déclencheur n'est elle prend la valeur de la
Active
champ de laPerson
objet qui est dans le DataGridRow, et si cette valeur est fausse, alors il se tourne vers la couleur de fond de la ligne rouge.devrait fonctionner exactement la même. Je suis simplement la liaison d'une collecte de données pour la grille de données. Essentiellement, c'est la même chose que le jeu de données n'lorsque vous liez à l'aide de votre base de données.
Fantastique, merci beaucoup pour votre aide. J'étais confus parce que je pensais que le style a été fait à l'intérieur de la grille de tags pas de la Fenêtre.Les ressources. Merci encore pour votre aide
OriginalL'auteur Ryan Alford