Je dois attribuer une couleur à la ligne que j'ajoute à l'exécution dans le DataTable. Comment cela peut-il être fait?Affectation par programme d'une couleur à une ligne dans DataGrid
Répondre
Vous pouvez gérer l'événement LoadingRow du DataGrid pour détecter le moment où une ligne est ajoutée. Dans le gestionnaire d'événements, vous pouvez obtenir une référence au DataRow ajouté au DataTable qui agit en tant que votre ItemsSource. Ensuite, vous pouvez mettre à jour la couleur de DataGridRow comme vous le souhaitez.
void dataGrid_LoadingRow(object sender, Microsoft.Windows.Controls.DataGridRowEventArgs e)
{
// Get the DataRow corresponding to the DataGridRow that is loading.
DataRowView item = e.Row.Item as DataRowView;
if (item != null)
{
DataRow row = item.Row;
// Access cell values values if needed...
// var colValue = row["ColumnName1]";
// var colValue2 = row["ColumName2]";
// Set the background color of the DataGrid row based on whatever data you like from
// the row.
e.Row.Background = new SolidColorBrush(Colors.BlanchedAlmond);
}
}
Pour vous inscrire à l'événement en XAML:
<toolkit:DataGrid x:Name="dataGrid"
...
LoadingRow="dataGrid_LoadingRow">
ou en C#:
this.dataGrid.LoadingRow += new EventHandler<Microsoft.Windows.Controls.DataGridRowEventArgs>(dataGrid_LoadingRow);
IMPORTANT: assurez-vous de toujours attribuer les valeurs par défaut pour les lignes qui ne sont pas être coloré par une condition - ou tout autre style.
Voir ma réponse à C# Silverlight Datagrid - Row Color Change.
PS. Je suis en Silverlight et n'ont pas confirmé ce comportement dans WPF
U pouvez essayer cette
Dans le XAML
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Setters>
<Setter Property="Background" Value="{Binding Path=StatusColor}"></Setter>
</Style.Setters>
</Style>
</Window.Resources>
Dans le DataGrid
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" Name="dtgTestColor" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Valor" Binding="{Binding Path=Valor}"/>
</DataGrid.Columns>
</DataGrid>
Dans le code que j'ai une classe avec
public class ColorRenglon
{
public string Valor { get; set; }
public string StatusColor { get; set; }
}
Réglé DataContext
dtgTestColor.DataContext = ColorRenglon;
dtgTestColor.Items.Refresh();
Si u défini pas la couleur de la ligne la valeur par défaut est gris
u peut essayer cet exemple avec cet exemple
List<ColorRenglon> test = new List<ColorRenglon>();
ColorRenglon cambiandoColor = new ColorRenglon();
cambiandoColor.Valor = "Aqui va un color";
cambiandoColor.StatusColor = "Red";
test.Add(cambiandoColor);
cambiandoColor = new ColorRenglon();
cambiandoColor.Valor = "Aqui va otro color";
cambiandoColor.StatusColor = "PaleGreen";
test.Add(cambiandoColor);
- 1. Sélection bleue de la ligne Datagrid par programme
- 2. Comment définir une couleur de ligne alternative dans flex datagrid?
- 3. Liaison de couleur de ligne Silverlight DataGrid
- 4. WPG DataGrid: Comment modifier la ligne sélectionnée par programme?
- 5. Comment sélectionner une ligne ou une cellule dans WPF DataGrid par programme?
- 6. actualisation par programme d'un DataGrid dans ASP.net
- 7. comment modifier une couleur dans une image par programme?
- 8. Comment définir la couleur d'arrière-plan pour une ligne de grille de données par programme
- 9. WPF DataGrid - Définition de RowDetails par programme
- 10. Comment puis-je insérer par programme une ligne supplémentaire dans un DataGrid ASP.NET?
- 11. WPF DataGrid - Définir une cellule en mode d'édition par programme
- 12. Comment ajouter ou supprimer une ligne à datagridview délimité par programme dans C# .Net Win App
- 13. Affectation de la sortie d'un programme à une variable
- 14. Ajout par programme d'étiquettes à une ligne nouvellement créée?
- 15. Comment référencer par programme une cellule Silverlight DataGrid?
- 16. flex datagrid: comment faire une sélection multiple par programme
- 17. DataGrid WPF: comment trier une colonne par programme?
- 18. Définition de la couleur d'arrière-plan pour la ligne DataGrid dans Adobe Flex
- 19. Ajouter une ligne dans Dojo DataGrid
- 20. C# Silverlight Datagrid - Changement de couleur de ligne
- 21. Comment insérer par programme une ligne dans un GridView?
- 22. Modifier la couleur de la ligne basée sur une valeur dans le C# Datagrid
- 23. datagrid dans une cellule datagrid
- 24. Définition du texte Couleur d'une ligne DataGrid WPF lorsque la ligne est sélectionnée
- 25. couleur des cellules de DataGrid WPF aux paramètres par défaut
- 26. Tracer une ligne avec une couleur dégradée
- 27. Exception à la suppression vue Ligne Datagrid
- 28. modifier DataGrid ligne
- 29. ASP.NET Datagrid - masquer une ligne/colonne spécifique
- 30. Ajouter TemplateColumn de CheckBoxes à DataGrid programme
assurez-vous d'attribuer les valeurs par défaut pour les lignes dont la couleur n'est pas déclenchée par une condition –
merci. C'était une manière simple et étonnante pour moi. – Nasenbaer
Ne fonctionne pas. l'article est toujours nul – Yusha