c# - 如何显示 HeaderedItemsControl 的 Header?

标签 c# wpf xaml headereditemscontrol

我有以下代码:

 <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,但没有 header 。

最佳答案

作为the documentation指出:

A HeaderedItemsControl has a limited default style. To create a HeaderedItemsControl with a custom appearance, create a new ControlTemplate.

因此,当您创建该模板时,请确保包含一些 ContentPresenter绑定(bind)到 Header(例如使用 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>

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

关于c# - 如何显示 HeaderedItemsControl 的 Header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7221005/

相关文章:

c# - DependencyProperty 绑定(bind)模式双向但 propertychangedeventhandler 为空

c# - LINQ 从列表中获取最大可为空的日期时间

c# - 检测进程的两个窗口

c# - 服务器未返回状态代码为 400 的 JSON (.net)

WPF 样式不适用于已设置样式的 UserControl

c# - WPF DynamicDataDisplay 模板轴标签与基于值的图标图像

c# - Visual Studio 2010 - Web 部署超时 - 怎么办?

c# - 为什么在 WPF 中将 BitmapSource 保存为 bmp、jpeg 和 png 时得到完全不同的结果

wpf - 使用 WPF 将位图复制到其他位图中

c# - XAML-Datagrid 跳转到行