# C1.WPF.C1HierarchicalPresenter

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_WPF_C1HierarchicalPresenter" data-uid="C1.WPF.C1HierarchicalPresenter" class="text-break">C1HierarchicalPresenter Class
</h1>
  <div class="markdown level0 summary"><p>Represents a control that contains multiple items and has a header.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.threading.dispatcherobject">DispatcherObject</a></div>
    <div class="level2"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.dependencyobject">DependencyObject</a></div>
    <div class="level3"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.media.visual">Visual</a></div>
    <div class="level4"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.uielement">UIElement</a></div>
    <div class="level5"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.frameworkelement">FrameworkElement</a></div>
    <div class="level6"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.controls.control">Control</a></div>
    <div class="level7"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.controls.itemscontrol">ItemsControl</a></div>
    <div class="level8"><span class="xref">C1HierarchicalPresenter</span></div>
      <div class="level9"><a class="xref" href="C1.WPF.C1Menu.html">C1Menu</a></div>
      <div class="level9"><a class="xref" href="C1.WPF.C1MenuItem.html">C1MenuItem</a></div>
      <div class="level9"><a class="xref" href="C1.WPF.C1TreeView.html">C1TreeView</a></div>
      <div class="level9"><a class="xref" href="C1.WPF.C1TreeViewItem.html">C1TreeViewItem</a></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.media.animation.ianimatable">IAnimatable</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.iframeworkinputelement">IFrameworkInputElement</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.iinputelement">IInputElement</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.isupportinitialize">ISupportInitialize</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.markup.iqueryambient">IQueryAmbient</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.markup.iaddchild">IAddChild</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.windows.controls.primitives.icontainitemstorage">IContainItemStorage</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.WPF.html">C1.WPF</a></h6>
  <h6><strong>Assembly</strong>: C1.WPF.4.6.2.dll</h6>
  <h5 id="C1_WPF_C1HierarchicalPresenter_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[TemplatePart(Name = &quot;HeaderPresenter&quot;, Type = typeof(ContentPresenter))]
[TemplateVisualState(Name = &quot;MouseOver&quot;, GroupName = &quot;CommonStates&quot;)]
[TemplateVisualState(Name = &quot;Disabled&quot;, GroupName = &quot;CommonStates&quot;)]
[TemplateVisualState(Name = &quot;Normal&quot;, GroupName = &quot;CommonStates&quot;)]
public class C1HierarchicalPresenter : ItemsControl, IAnimatable, IFrameworkInputElement, IInputElement, ISupportInitialize, IQueryAmbient, IAddChild, IContainItemStorage</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">&lt;TemplatePart(Name:=&quot;HeaderPresenter&quot;, Type:=GetType(ContentPresenter))&gt;
&lt;TemplateVisualState(Name:=&quot;MouseOver&quot;, GroupName:=&quot;CommonStates&quot;)&gt;
&lt;TemplateVisualState(Name:=&quot;Disabled&quot;, GroupName:=&quot;CommonStates&quot;)&gt;
&lt;TemplateVisualState(Name:=&quot;Normal&quot;, GroupName:=&quot;CommonStates&quot;)&gt;
Public Class C1HierarchicalPresenter
    Inherits ItemsControl
    Implements IAnimatable, IFrameworkInputElement, IInputElement, ISupportInitialize, IQueryAmbient, IAddChild, IContainItemStorage</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter__ctor" data-uid="C1.WPF.C1HierarchicalPresenter.#ctor">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.-ctor.html#C1_WPF_C1HierarchicalPresenter__ctor">C1HierarchicalPresenter()</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of a <a class="xref" href="C1.WPF.C1HierarchicalPresenter.html">C1HierarchicalPresenter</a>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="fields">Fields
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_HeaderProperty" data-uid="C1.WPF.C1HierarchicalPresenter.HeaderProperty">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.HeaderProperty.html">HeaderProperty</a>
        </td>
        <td class="markdown level1 summary"><p>Identifies the <a class="xref" href="C1.WPF.C1HierarchicalPresenter.Header.html#C1_WPF_C1HierarchicalPresenter_Header">Header</a> dependency property.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_HeaderTemplateProperty" data-uid="C1.WPF.C1HierarchicalPresenter.HeaderTemplateProperty">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.HeaderTemplateProperty.html">HeaderTemplateProperty</a>
        </td>
        <td class="markdown level1 summary"><p>Identifies the <a class="xref" href="C1.WPF.C1HierarchicalPresenter.HeaderTemplate.html#C1_WPF_C1HierarchicalPresenter_HeaderTemplate">HeaderTemplate</a> dependency property.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_Header" data-uid="C1.WPF.C1HierarchicalPresenter.Header">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.Header.html#C1_WPF_C1HierarchicalPresenter_Header">Header</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the item that labels the control.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_HeaderTemplate" data-uid="C1.WPF.C1HierarchicalPresenter.HeaderTemplate">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.HeaderTemplate.html#C1_WPF_C1HierarchicalPresenter_HeaderTemplate">HeaderTemplate</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the template used to display the contents of the control's header.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ItemConverter" data-uid="C1.WPF.C1HierarchicalPresenter.ItemConverter">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ItemConverter.html#C1_WPF_C1HierarchicalPresenter_ItemConverter">ItemConverter</a>
        </td>
        <td class="markdown level1 summary"><p>The ItemConverter performs the conversion from a <span class="xref">C1.Silverlight.C1HierarchicalPresenter</span> instance to its String
representation.
If not set by the user, the default converter will be used.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ParentCollection" data-uid="C1.WPF.C1HierarchicalPresenter.ParentCollection">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ParentCollection.html#C1_WPF_C1HierarchicalPresenter_ParentCollection">ParentCollection</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the items collection of this element's parent.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ParentItemsSource" data-uid="C1.WPF.C1HierarchicalPresenter.ParentItemsSource">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ParentItemsSource.html#C1_WPF_C1HierarchicalPresenter_ParentItemsSource">ParentItemsSource</a>
        </td>
        <td class="markdown level1 summary"><p>Returns this element's parent ItemsSource Property.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ChangeVisualStateCommon_System_Boolean_" data-uid="C1.WPF.C1HierarchicalPresenter.ChangeVisualStateCommon(System.Boolean)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ChangeVisualStateCommon.html#C1_WPF_C1HierarchicalPresenter_ChangeVisualStateCommon_System_Boolean_">ChangeVisualStateCommon(bool)</a>
        </td>
        <td class="markdown level1 summary"><p>Updates the current visual state of the Common visual state group to match the object's properties.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ClearContainerForItemOverride_System_Windows_DependencyObject_System_Object_" data-uid="C1.WPF.C1HierarchicalPresenter.ClearContainerForItemOverride(System.Windows.DependencyObject,System.Object)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ClearContainerForItemOverride.html#C1_WPF_C1HierarchicalPresenter_ClearContainerForItemOverride_System_Windows_DependencyObject_System_Object_">ClearContainerForItemOverride(DependencyObject, object)</a>
        </td>
        <td class="markdown level1 summary"></td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_GetContainerForItemOverride" data-uid="C1.WPF.C1HierarchicalPresenter.GetContainerForItemOverride">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.GetContainerForItemOverride.html#C1_WPF_C1HierarchicalPresenter_GetContainerForItemOverride">GetContainerForItemOverride()</a>
        </td>
        <td class="markdown level1 summary"></td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_InitializeItem_C1_WPF_C1HierarchicalPresenter_" data-uid="C1.WPF.C1HierarchicalPresenter.InitializeItem(C1.WPF.C1HierarchicalPresenter)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.InitializeItem.html#C1_WPF_C1HierarchicalPresenter_InitializeItem_C1_WPF_C1HierarchicalPresenter_">InitializeItem(C1HierarchicalPresenter)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a <span class="xref">C1.Silverlight.C1HierarchicalPresenter</span> by setting its parent and root elements
in the hierarchy.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_IsAncestorOf_C1_WPF_C1HierarchicalPresenter_" data-uid="C1.WPF.C1HierarchicalPresenter.IsAncestorOf(C1.WPF.C1HierarchicalPresenter)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.IsAncestorOf.html#C1_WPF_C1HierarchicalPresenter_IsAncestorOf_C1_WPF_C1HierarchicalPresenter_">IsAncestorOf(C1HierarchicalPresenter)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines whether the <span class="xref">C1.Silverlight.C1HierarchicalPresenter</span> is an ancestor of the descendant element.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_IsItemItsOwnContainerOverride_System_Object_" data-uid="C1.WPF.C1HierarchicalPresenter.IsItemItsOwnContainerOverride(System.Object)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.IsItemItsOwnContainerOverride.html#C1_WPF_C1HierarchicalPresenter_IsItemItsOwnContainerOverride_System_Object_">IsItemItsOwnContainerOverride(object)</a>
        </td>
        <td class="markdown level1 summary"></td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_OnApplyTemplate" data-uid="C1.WPF.C1HierarchicalPresenter.OnApplyTemplate">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.OnApplyTemplate.html#C1_WPF_C1HierarchicalPresenter_OnApplyTemplate">OnApplyTemplate()</a>
        </td>
        <td class="markdown level1 summary"><p>Builds the visual tree for the <a class="xref" href="C1.WPF.C1HierarchicalPresenter.html">C1HierarchicalPresenter</a> control when a new template is applied.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_OnHeaderChanged_System_Object_" data-uid="C1.WPF.C1HierarchicalPresenter.OnHeaderChanged(System.Object)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.OnHeaderChanged.html#C1_WPF_C1HierarchicalPresenter_OnHeaderChanged_System_Object_">OnHeaderChanged(object)</a>
        </td>
        <td class="markdown level1 summary"><p>Called when the value of the <span class="xref">Header</span> property changes.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_OnItemCleared_C1_WPF_ItemPreparedEventArgs_" data-uid="C1.WPF.C1HierarchicalPresenter.OnItemCleared(C1.WPF.ItemPreparedEventArgs)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.OnItemCleared.html#C1_WPF_C1HierarchicalPresenter_OnItemCleared_C1_WPF_ItemPreparedEventArgs_">OnItemCleared(ItemPreparedEventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Raises the <span class="xref">C1.Silverlight.C1HierarchicalPresenter.ItemCleared</span> event.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_OnItemPrepared_C1_WPF_ItemPreparedEventArgs_" data-uid="C1.WPF.C1HierarchicalPresenter.OnItemPrepared(C1.WPF.ItemPreparedEventArgs)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.OnItemPrepared.html#C1_WPF_C1HierarchicalPresenter_OnItemPrepared_C1_WPF_ItemPreparedEventArgs_">OnItemPrepared(ItemPreparedEventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Raises the <span class="xref">C1.Silverlight.C1HierarchicalPresenter.ItemPrepared</span> event.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_OnPropertyChanged_System_Windows_DependencyPropertyChangedEventArgs_" data-uid="C1.WPF.C1HierarchicalPresenter.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.OnPropertyChanged.html#C1_WPF_C1HierarchicalPresenter_OnPropertyChanged_System_Windows_DependencyPropertyChangedEventArgs_">OnPropertyChanged(DependencyPropertyChangedEventArgs)</a>
        </td>
        <td class="markdown level1 summary"><p>Invoked whenever the effective value of any dependency property has been updated.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_PrepareContainerForItemOverride_System_Windows_DependencyObject_System_Object_" data-uid="C1.WPF.C1HierarchicalPresenter.PrepareContainerForItemOverride(System.Windows.DependencyObject,System.Object)">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.PrepareContainerForItemOverride.html#C1_WPF_C1HierarchicalPresenter_PrepareContainerForItemOverride_System_Windows_DependencyObject_System_Object_">PrepareContainerForItemOverride(DependencyObject, object)</a>
        </td>
        <td class="markdown level1 summary"></td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ToList__1" data-uid="C1.WPF.C1HierarchicalPresenter.ToList``1">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ToList.html#C1_WPF_C1HierarchicalPresenter_ToList__1">ToList&lt;T&gt;()</a>
        </td>
        <td class="markdown level1 summary"><p>Creates a list with all the item containers present in the Hierarchical Presenter at
the moment of invocation.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="events">Events
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_IsMouseOverChanged" data-uid="C1.WPF.C1HierarchicalPresenter.IsMouseOverChanged">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.IsMouseOverChanged.html">IsMouseOverChanged</a>
        </td>
        <td class="markdown level1 summary"><p>Event raised when the <span class="xref">IsMouseOver</span> property has changed.</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ItemCleared" data-uid="C1.WPF.C1HierarchicalPresenter.ItemCleared">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ItemCleared.html">ItemCleared</a>
        </td>
        <td class="markdown level1 summary"><p>Occurs when a C1HierarchicalPresenter child item is cleared.
(ClearContainerForItemOverride was invoked).</p>
</td>
      </tr>
      <tr>
        <td id="C1_WPF_C1HierarchicalPresenter_ItemPrepared" data-uid="C1.WPF.C1HierarchicalPresenter.ItemPrepared">
          <a class="xref" href="C1.WPF.C1HierarchicalPresenter.ItemPrepared.html">ItemPrepared</a>
        </td>
        <td class="markdown level1 summary"><p>Occurs when a C1HierarchicalPresenter child item is prepared
(PrepareContainerForItemOverride was invoked).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="extensionmethods">Extension Methods</h3>
  <div>
      <a class="xref" href="C1.WPF.Extensions.FindParent.html#C1_WPF_Extensions_FindParent__1_System_Windows_FrameworkElement_">Extensions.FindParent&lt;T&gt;(FrameworkElement)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.Extensions.GetAllParents.html#C1_WPF_Extensions_GetAllParents_System_Windows_FrameworkElement_">Extensions.GetAllParents(FrameworkElement)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.Extensions.GetVisualStateGroup.html#C1_WPF_Extensions_GetVisualStateGroup_System_Windows_FrameworkElement_System_String_">Extensions.GetVisualStateGroup(FrameworkElement, string)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.Extensions.SetBinding.html#C1_WPF_Extensions_SetBinding__1_System_Windows_FrameworkElement_System_Windows_DependencyProperty___0_System_Linq_Expressions_Expression_System_Func___0_System_Object___">Extensions.SetBinding&lt;T&gt;(FrameworkElement, DependencyProperty, T, Expression&lt;Func&lt;T, object&gt;&gt;)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.Extensions.SetBinding.html#C1_WPF_Extensions_SetBinding__1_System_Windows_FrameworkElement_System_Windows_DependencyProperty___0_System_Linq_Expressions_Expression_System_Func___0_System_Object___System_Windows_Data_IValueConverter_">Extensions.SetBinding&lt;T&gt;(FrameworkElement, DependencyProperty, T, Expression&lt;Func&lt;T, object&gt;&gt;, IValueConverter)</a>
  </div>
  <div>
      <a class="xref" href="C1.WPF.Extensions.C1TransformToVisual.html#C1_WPF_Extensions_C1TransformToVisual_System_Windows_UIElement_System_Windows_UIElement_">Extensions.C1TransformToVisual(UIElement, UIElement)</a>
  </div>

</div>
