2016-03-18 9 views
-1

Так что я пытаюсь создать таблицу, которая имеет много разных форматов. В настоящее время я пытаюсь настроить цвет заголовка столбца в Datagrid в WPF путем кодирования в XAML. Все, что я нашел, это способы форматирования всех заголовков столбцов. Есть ли способ форматировать каждый отдельно?Как форматировать каждый заголовок каждого столбца в WPF Datagrid XAML

Моего код в настоящее время выглядит следующим образом:

<DataGrid x:Name="CellStyleGrid" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="309,50,0,0" IsReadOnly="False" IsEnabled="True" CanUserAddRows="True" Width="172" RenderTransformOrigin="0.501,0.477" SelectionUnit="Cell" Grid.ColumnSpan="2" AlternatingRowBackground="#C2C2C2" AlternationCount="2" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Path=col1}" ClipboardContentBinding="{x:Null}" Header="Col1" CanUserResize="True"/> 
      <DataGridTextColumn Binding="{Binding Path=col2}" ClipboardContentBinding="{x:Null}" Header="Col2" CanUserResize="True"/> 
      <DataGridTextColumn Binding="{Binding Path=col3}" ClipboardContentBinding="{x:Null}" Header="Col3" CanUserResize="True"/> 
     </DataGrid.Columns> 
     <DataGrid.ColumnHeaderStyle> 
      <Style TargetType="{x:Type DataGridColumnHeader}"> 
       <Setter Property="Background" Value="#3B3B3B"/> 
       <Setter Property="Foreground" Value="White"/> 
      </Style> 
     </DataGrid.ColumnHeaderStyle> 
    </DataGrid> 

Этот код создает простую таблицу с тремя столбцами и цветами заголовков темно-серые с белым передним планом текстом. Я хочу сделать один из заголовков светлее серым. Спасибо! Jon

+1

Добро пожаловать в переполнение стека! Пожалуйста, отредактируйте [edit], чтобы добавить содержательный код и описание проблемы здесь. Проводка [Минимальный, полный, проверяемый пример] (http: // $ SITEURL $/help/mcve), который демонстрирует , ваша проблема поможет вам получить более качественные ответы. Благодаря! –

ответ

0

Установите AutoGenerateColumns на false, затем в каждом определении столбца укажите DataGridXColumn.HeaderStyle. Вот пример:

<DataGrid AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{SomeBinding}"> 
      <DataGridTextColumn.HeaderStyle> 
        <Style> 
         <Setter Property="InkCanvas.Background" 
           Value="Blue" /> 
        </Style> 
        </DataGridTextColumn.HeaderStyle> 
     </DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid> 
+0

Я получил здесь ошибку, в которой указано, что DataGrid не содержит параметр HeaderTemplate. – Jvinsko

+0

Обратите внимание, что DataGridTextColumn имеет параметр HeaderTemplate, а не DataGrid. Конечно, вы можете использовать любую форму DataGrid__Column, которую вы хотите, как указано в ответе –

+0

Простите меня, DataGridTextColumn - это то, что я хотел сказать. Однако это была моя собственная ошибка. Я обнаружил, что у меня была неуместная '/'. Это сработало для меня, спасибо! – Jvinsko

 Смежные вопросы

  • Нет связанных вопросов^_^