Necesito asignar un color a la fila que agrego en tiempo de ejecución al DataTable. ¿Cómo puede hacerse esto?Asignación programática de un color a una fila en DataGrid
Respuesta
Puede controlar el evento LoadingRow de DataGrid para detectar cuándo se agrega una fila. En el controlador de eventos, puede obtener una referencia al DataRow que se agregó a la DataTable que actúa como su ItemsSource. Luego puede actualizar el color de DataGridRow como quiera.
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);
}
}
para inscribirse en el evento en XAML:
<toolkit:DataGrid x:Name="dataGrid"
...
LoadingRow="dataGrid_LoadingRow">
O en C#:
this.dataGrid.LoadingRow += new EventHandler<Microsoft.Windows.Controls.DataGridRowEventArgs>(dataGrid_LoadingRow);
IMPORTANTE: asegúrese de asignar siempre los valores predeterminados para las filas que no están ser coloreado por una condición - o cualquier otro estilo.
Ver mi respuesta a C# Silverlight Datagrid - Row Color Change.
PS. Estoy en Silverlight y no han confirmado este comportamiento en WPF
U puede probar este
En el XAML
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Setters>
<Setter Property="Background" Value="{Binding Path=StatusColor}"></Setter>
</Style.Setters>
</Style>
</Window.Resources>
En la cuadrícula de datos
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" Name="dtgTestColor" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Valor" Binding="{Binding Path=Valor}"/>
</DataGrid.Columns>
</DataGrid>
En el código que tengo una clase con
public class ColorRenglon
{
public string Valor { get; set; }
public string StatusColor { get; set; }
}
Al establecer el DataContext
dtgTestColor.DataContext = ColorRenglon;
dtgTestColor.Items.Refresh();
Si u no establecer el color de la fila el valor por defecto es gris
u puede tratar esta muestra con esta muestra
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. Enlace de color de fila Silverlight DataGrid
- 2. C# Silverlight Datagrid - Fila Color Change
- 3. Asignación vertical de contenido de fila de DataGrid
- 4. Configuración del texto Color de una fila WGG DataGrid cuando se selecciona una fila
- 5. Freeze DataGrid Fila
- 6. Estilo de fila seleccionada de WPF DataGrid
- 7. Número de fila WPF Datagrid
- 8. Desaparición de fila animada en WPFToolKit DataGrid
- 9. Número de visualización de virtualización de fila de DataGrid
- 10. Agregando un pequeño rectángulo de color en la celda DataGrid
- 11. La asignación de un color de fondo a una célula, dada una condición en otra celda
- 12. WPF DataGrid: Falta fila en blanco
- 13. Wpf DataGrid ocultar fila completa a través de DataBinding
- 14. Establecer color en una fila QTableView
- 15. WPF DataGrid con alturas de fila variables
- 16. Color de fila UIPickerView
- 17. WPF Datagrid establece la fila seleccionada
- 18. Slickgrid agregar color a una celda/columna o fila
- 19. Aplicar un color de fondo a una fila de cuadrícula completa en XAML Silverlight
- 20. datagrid silverlight: vincula el estilo de cada fila
- 21. WPF Datagrid Fila Edición evento "ENDED"
- 22. Obtener elemento de fila seleccionado en DataGrid WPF
- 23. Agregar un botón a WGD DataGrid
- 24. Asignación de frontera para cada fila de la cuadrícula
- 25. BIRT: fila alternante Color en un grupo de tabla
- 26. patrones de petición de fila DataGrid con virtualización de datos
- 27. WPF DataGrid fila vacía en la parte inferior
- 28. Cambiar el color de fondo del encabezado Datagrid en Silverlight
- 29. Colorear una fila en un NSTableView
- 30. ¿Cómo puedo resaltar una fila completa de DataGrid cuando se hace clic en una sola celda?
asegúrese de poner por defecto para las filas cuyo color no se desencadena por una condición –
gracias. esa fue una manera increíblemente simple para mí. – Nasenbaer
No funciona. el artículo siempre es nulo – Yusha