none
background de columna en datagrid SL4? RRS feed

Respuestas

  • Hola gblumen.

    si, el post habla de filas, pero el proceso para personalizar el color es el mismo.

    No se exactamente como quieres cambiar el color y como, pero si lo que quieres es simplemente un cambio de color de las celdas de una columna, puedes hacer algo asi:

    	<UserControl.Resources>
            
            <!-- Color verde para las celdas del datagrid -->
    		<Style x:Key="DataGridCellStyle1" TargetType="sdk:DataGridCell">
    			<Setter Property="Background" Value="#FF2AFF00"/>
    		</Style>
            
    	</UserControl.Resources>
    

    Este es un recurso donde se sobreescribe el color de fondo para las celdas que quieras.

    luego solo tienes que asignar el estilo a la columna que quieras con la propiedad CellStyle:

            <sdk:DataGrid AutoGenerateColumns="False" Height="207" HorizontalAlignment="Left" ItemsSource="{Binding ElementName=customerDomainDataSource, Path=Data}" Margin="20,22,0,0" Name="customerDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="633">
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTextColumn x:Name="companyNameColumn" Binding="{Binding Path=CompanyName}" Header="Company Name" Width="SizeToHeader" />
                    <sdk:DataGridTextColumn x:Name="customerIDColumn" Binding="{Binding Path=CustomerID, Mode=OneWay}" Header="Customer ID" IsReadOnly="True" Width="SizeToHeader" CellStyle="{StaticResource DataGridCellStyle1}"  />                
                    <sdk:DataGridTextColumn x:Name="emailAddressColumn" Binding="{Binding Path=EmailAddress}" Header="Email Address" Width="SizeToHeader" />
                    <sdk:DataGridTextColumn x:Name="firstNameColumn" Binding="{Binding Path=FirstName}" Header="First Name" Width="SizeToHeader" CellStyle="{StaticResource DataGridCellStyle1}"/>
                    <sdk:DataGridTextColumn x:Name="lastNameColumn" Binding="{Binding Path=LastName}" Header="Last Name" Width="SizeToHeader" />
                    <sdk:DataGridTextColumn x:Name="middleNameColumn" Binding="{Binding Path=MiddleName}" Header="Middle Name" Width="SizeToHeader" />
                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
    

    esto es lo mas basico que hay, para mayor personalizacion segun los datos de entrada hay que usar algun conversor como he indicado en el link.

     


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    • Marcado como respuesta gblumen lunes, 9 de enero de 2012 13:35
    domingo, 8 de enero de 2012 13:06

Todas las respuestas

  • Hola gblumen.

    En este post, indico como hacerlo con filas y muy personalizable, el proceso sigue la misma linea, mediante este metodo se puede hacer cualquier modificacion de colores en un datagrid.

    Si tienes problemas comentalo.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    lunes, 2 de enero de 2012 19:55
  • david, entre a tu blog, mas no encontre eso de la personalizacion de las filas en el datagrid, ni nada parecido

    alguien mas sabe como cambiar de color al background de una columna en un datagrid??? con estilos quizas?? como?

    martes, 3 de enero de 2012 15:28
  • Hola gblumen.

    Si, puse el link en el comentario, pero por lo visto no ha salido, lo vuelvo a poner:

    http://social.msdn.microsoft.com/Forums/es-ES/wpfes/thread/259329ad-6319-4e81-b83d-29cbd69a4b4f

     


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    viernes, 6 de enero de 2012 19:18
  • gracias por tu respuesta  david, pero en tu link se habla de como cambiar el color de una fila en un datagrid silverlight, y yo busco como cambiar el color de una columna en un datagrid, seguire buscando

    saludos,

    viernes, 6 de enero de 2012 21:56
  • Hola gblumen.

    si, el post habla de filas, pero el proceso para personalizar el color es el mismo.

    No se exactamente como quieres cambiar el color y como, pero si lo que quieres es simplemente un cambio de color de las celdas de una columna, puedes hacer algo asi:

    	<UserControl.Resources>
            
            <!-- Color verde para las celdas del datagrid -->
    		<Style x:Key="DataGridCellStyle1" TargetType="sdk:DataGridCell">
    			<Setter Property="Background" Value="#FF2AFF00"/>
    		</Style>
            
    	</UserControl.Resources>
    

    Este es un recurso donde se sobreescribe el color de fondo para las celdas que quieras.

    luego solo tienes que asignar el estilo a la columna que quieras con la propiedad CellStyle:

            <sdk:DataGrid AutoGenerateColumns="False" Height="207" HorizontalAlignment="Left" ItemsSource="{Binding ElementName=customerDomainDataSource, Path=Data}" Margin="20,22,0,0" Name="customerDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="633">
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTextColumn x:Name="companyNameColumn" Binding="{Binding Path=CompanyName}" Header="Company Name" Width="SizeToHeader" />
                    <sdk:DataGridTextColumn x:Name="customerIDColumn" Binding="{Binding Path=CustomerID, Mode=OneWay}" Header="Customer ID" IsReadOnly="True" Width="SizeToHeader" CellStyle="{StaticResource DataGridCellStyle1}"  />                
                    <sdk:DataGridTextColumn x:Name="emailAddressColumn" Binding="{Binding Path=EmailAddress}" Header="Email Address" Width="SizeToHeader" />
                    <sdk:DataGridTextColumn x:Name="firstNameColumn" Binding="{Binding Path=FirstName}" Header="First Name" Width="SizeToHeader" CellStyle="{StaticResource DataGridCellStyle1}"/>
                    <sdk:DataGridTextColumn x:Name="lastNameColumn" Binding="{Binding Path=LastName}" Header="Last Name" Width="SizeToHeader" />
                    <sdk:DataGridTextColumn x:Name="middleNameColumn" Binding="{Binding Path=MiddleName}" Header="Middle Name" Width="SizeToHeader" />
                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
    

    esto es lo mas basico que hay, para mayor personalizacion segun los datos de entrada hay que usar algun conversor como he indicado en el link.

     


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    • Marcado como respuesta gblumen lunes, 9 de enero de 2012 13:35
    domingo, 8 de enero de 2012 13:06
  • gracias por la respuesta me fue muy util

    saludos

    lunes, 9 de enero de 2012 13:35