2011-09-19 48 views
1

在XAML的Silverlight 4.0:如何在代碼中得到DatagridTemplateColumn頭之後

<sdk:DataGridTemplateColumn x:Name="Urgency"> 
       <sdk:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal" VerticalAlignment="Center"> 
          <Image Source="{Binding UrgencyUri}" 
          VerticalAlignment="Stretch" 
          Stretch="UniformToFill" 
          Height="10" Width="10" Margin="0,0,5,0"/> 
          <TextBlock Text="{Binding Urgency}"/> 
         </StackPanel> 
        </DataTemplate> 
       </sdk:DataGridTemplateColumn.CellTemplate> 
       <sdk:DataGridTemplateColumn.HeaderStyle> 
        <Style TargetType="primitive:DataGridColumnHeader"> 
         <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
         <Setter Property="ContentTemplate"> 
          <Setter.Value> 
           <DataTemplate> 
            <Grid HorizontalAlignment="Stretch"> 
             <Grid.ColumnDefinitions> 
              <ColumnDefinition Width="*" /> 
              <ColumnDefinition Width="Auto" /> 
             </Grid.ColumnDefinitions> 
             <TextBlock Text="{Binding Path=Urgency, Source={StaticResource MHVWindowResources}}" Grid.Column="0" HorizontalAlignment="Left" /> 
             <filter:DataGridColumnFilter Grid.Column="1" HorizontalAlignment="Right" /> 
            </Grid> 
           </DataTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </sdk:DataGridTemplateColumn.HeaderStyle> 
      </sdk:DataGridTemplateColumn> 

我用下面但是它返回null,則此代碼datagridtemplate列

DataGridTemplateColumn templateColumn = dataGrid.Columns[columnIndex] as DataGridTemplateColumn; 
      if (templateColumn != null) 
      { 

       string header = templateColumn.Header as string; 

       if (header == null) 
       { 
        return null; 
       } 
       bindingPath = header; 
      } 

是他們的事情,我錯過了?謝謝 我想知道如何獲取代碼後面的列標題。

+0

我想這是因爲你的TextBlock在HeaderStyle級別定義不標題級別。 –

回答

0

加入這一行:

var header = templateColumn.Header 

地方一個破發點這裏調試和檢查類型是在快速觀看的內容。

我的賭注是頭可能從來沒有一個字符串,因此它總是空當您使用:

string header = templateColumn.Header as string; 

希望幫助

相關問題