valor una pintar net letra encabezado columna color celda cambiar c# wpf datagrid colors

c# - una - Cambie el color de fondo de toda la columna de WPF DataGrid en RunTime



cambiar el valor de una celda datagridview c# (2)

La única forma de hacerlo funcionar es configurando las columnas por mí mismo (no utilizando AutoGenerate). Así que lo primero que hay que hacer es definir las columnas:

<DataGrid x:Name="Frid" ItemsSource="{Binding Path=.}"> <DataGrid.Columns> <DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}"> </DataGridTextColumn> <DataGridTextColumn Header="Last Name" Binding="{Binding Path=LastName}"> </DataGridTextColumn> </DataGrid.Columns> </DataGrid>

Luego, debe establecer cada columna CellStyle y vincular el Fondo a un recurso estático que puede declarar en Window.Resources:

<Window x:Class="WpfApplication1.MainWindow" ...> <Window.Resources> <SolidColorBrush x:Key="clBr" Color="White" /> </Window.Resources> ...

Columnas:

<DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}"> <DataGridTextColumn.CellStyle> <Style TargetType="DataGridCell"> <Setter Property="Background" Value="{StaticResource clBr}" /> </Style> </DataGridTextColumn.CellStyle> </DataGridTextColumn>

luego, solo puede manipular el recurso estático mediante código o manipulación xaml.

Espero eso ayude.

Todos, soy relativamente nuevo en WPF. He buscado la respuesta a esto, pero todo lo que he encontrado es cómo colorear filas en el tiempo de ejecución, no en columnas; por ejemplo las siguientes preguntas:

  1. Cambiar el color de la fila de datos de WPF

  2. ¿Cómo cambio programáticamente el color de la fila datagrid en WPF?

  3. Asignación programática de un color a una fila en DataGrid

  4. Cambiar el color de la celda de DataGrid basado en valores

et al.

He visto la propiedad CellStyle en las páginas de DataGrid de MSDN, pero su uso no me es obvio en absoluto a pesar de las búsquedas alrededor de esto también.

¿Cómo cambiar el color de fondo de una columna completa en tiempo de ejecución?

Gracias por tu tiempo.


Un poco viejo, pero aquí es cómo puede hacerlo mediante programación (para columnas de AutoGen):

private void dgvMailingList_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { e.Column.CellStyle = new Style(typeof(DataGridCell)); e.Column.CellStyle.Setters.Add(new Setter(DataGridCell.BackgroundProperty, new SolidColorBrush(Colors.LightBlue))); }

El mismo enfoque se puede aplicar también a las columnas que no son de AutoGen.