2013-08-19 1 views
0

DataGrid를 사용자 정의하려고합니다. 열 머리글 위에 일부 내용을 삽입하고 싶습니다. 이 작업을 수행하려면 ControlTemplate을 사용하려고합니다. 아래에 내 XAML 코드가 있습니다. 내 문제는 <ContentPresenter /> 아무것도 출력되지 않습니다. 페이지를로드하면 after TextBlock이 before TextBlock 바로 아래에 아무 것도없이 바로 나타납니다. 그 공간에 열 머리글을 표시하고 싶습니다.WPF Datagrid에서 열 머리글 표시를 사용자 정의하려면 어떻게합니까?

<DataGrid ItemsSource="{Binding List}" AutoGenerateColumns="True"> 

    <DataGrid.Template> 
     <ControlTemplate> 
      <StackPanel Orientation="Vertical"> 
       <TextBlock>before</TextBlock> 
       <ContentPresenter /> <!-- outputs nothing --> 
       <TextBlock>after</TextBlock>       
       <ItemsPresenter /> 
      </StackPanel> 
     </ControlTemplate> 
    </DataGrid.Template> 

</DataGrid> 

은 어떻게 before TextBlock에와 after TextBlock의 사이의 열 머리글을 표시합니까? 내 목록 개체는 몇 가지 공용 속성이있는 일반 클래스의 BindingList입니다.

답변

2

답변을 찾았습니다. <ContentPresenter /> 대신 <DataGridColumnHeadersPresenter />을 사용해야합니다. 따라서 작동하는 코드는 다음과 같습니다.

<DataGrid ItemsSource="{Binding List}" AutoGenerateColumns="True"> 

    <DataGrid.Template> 
     <ControlTemplate> 
      <StackPanel Orientation="Vertical"> 
       <TextBlock>before</TextBlock> 
       <DataGridColumnHeadersPresenter /> 
       <TextBlock>after</TextBlock> 
       <ItemsPresenter /> 
      </StackPanel>       
     </ControlTemplate> 
    </DataGrid.Template> 

</DataGrid> 
관련 문제