Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何自定义WPF Datagrid中列标题的显示?_Wpf_Datagrid_Controltemplate_Contentpresenter - Fatal编程技术网

如何自定义WPF Datagrid中列标题的显示?

如何自定义WPF Datagrid中列标题的显示?,wpf,datagrid,controltemplate,contentpresenter,Wpf,Datagrid,Controltemplate,Contentpresenter,我正在尝试自定义DataGrid。我想在列标题上方插入一些内容。我正在尝试使用ControlTemplate来执行此操作。下面是我的XAML代码。我的问题是没有输出任何内容。加载页面时,文本块之后的文本块直接显示在之前的文本块下方,中间没有任何内容。我想在该空间中显示列标题 <DataGrid ItemsSource="{Binding List}" AutoGenerateColumns="True"> <DataGrid.Template>

我正在尝试自定义DataGrid。我想在列标题上方插入一些内容。我正在尝试使用ControlTemplate来执行此操作。下面是我的XAML代码。我的问题是
没有输出任何内容。加载页面时,文本块之后的
文本块直接显示在
之前的
文本块下方,中间没有任何内容。我想在该空间中显示列标题

<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>

之前
之后

如何在
文本块和
文本块之间显示列标题?我的List对象只是一些泛型类的BindingList,它有几个公共属性。

我找到了答案。我应该使用
而不是
。因此,我的有效代码如下所示:

<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>

之前
之后