我有以下代码:

 <Window.Resources>
       <DataTemplate x:Key="SectionTemplate" >
              <TextBlock Text="{Binding Path=Name}" />
       </DataTemplate>
 </Window.Resources>
 <Grid >
   <Border>
       <HeaderedItemsControl Header="Top1"
                             ItemsSource="{Binding Path=List1}"
                             ItemTemplate="{StaticResource SectionTemplate}"/>
    </Border>
 </Grid>

public class MainWindow
{
   public List<Item> List1
   {
      get { return list1; }
      set { list1 = value; }
   }

   public MainWindow()
   {
      list1.Add(new Item { Name = "abc" });
      list1.Add(new Item { Name = "xxx" });

      this.DataContext = this;
      InitializeComponent();
   }
}

public class Item
{
    public string Name { get; set; }
}

出于某种原因,Items被呈现,但没有头。

最佳答案

正如the documentation指出的:
HeaderEditsControl具有有限的默认样式。要创建具有自定义外观的HeaderEditsControl,请创建新的ControlTemplate
因此,在创建该模板时,请确保包含一些绑定到ContentPresenterHeader(例如,使用ContentSource
例如

<HeaderedItemsControl.Template>
    <ControlTemplate TargetType="{x:Type HeaderedItemsControl}">
        <Border>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <ContentPresenter ContentSource="Header" />
                <Separator Grid.Row="1" />
                <ItemsPresenter Grid.Row="2" />
            </Grid>
        </Border>
    </ControlTemplate>
</HeaderedItemsControl.Template>

(省略所有默认绑定(边距、背景等)。

10-08 14:07