2015-05-15 3 views
1

У меня есть следующий текстовый столбец, и я хочу программно заменить текст в трех текстовых блоках. Любая помощь будет оценена.Как изменить текст DataGridColumnHeader

<DataGridTextColumn 
    x:Uid="Expiration_DataGridTextColumn" 
    Binding="{Binding Expiration}"> 
    <DataGridColumn.HeaderStyle> 
     <Style 
      TargetType="DataGridColumnHeader" 
      BasedOn="{StaticResource ThreeLineColumnHeaderStyle}"> 
      <Setter 
       Property="ContentTemplate"> 
       <Setter.Value> 
        <DataTemplate> 
         <StackPanel> 
          <TextBlock 
           x:Uid="Expiration_Header_Line1" 
           Text="" 
           HorizontalAlignment="Center" /> 
          <TextBlock 
           x:Uid="Expiration_Header_Line2" 
           Text="Expriation" 
           HorizontalAlignment="Center" /> 
          <TextBlock 
           x:Uid="Expiration_Header_Line3" 
           Text="" 
           HorizontalAlignment="Center" /> 
         </StackPanel> 
        </DataTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </DataGridColumn.HeaderStyle> 
</DataGridTextColumn> 

ответ

0

Вы можете связать этот текст с любыми вашими свойствами виртуальной машины с использованием связывания исходного источника.

Вы должны переопределить HeaderTemplate, а не стиль,

<DataGridTextColumn 
x:Uid="Expiration_DataGridTextColumn" 
Binding="{Binding Expiration}"> 
       <DataGridColumn.HeaderTemplate> 
         <DataTemplate> 
          <TextBlock Text="YourColumnName" HorizontalAlignment="Center"></TextBlock> 
         </DataTemplate> 
       </DataGridColumn.HeaderTemplate> 
      </DataGridTextColumn> 
+0

Есть ли способ сделать это без привязки? Я попробовал добавить свойства Name к этим TextBlocks, но не мог понять, как их найти. – uncaged

+0

см. Обновленный ans – Muds

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