This topic has not yet been rated - Rate this topic

HeaderedContentControl.HeaderStringFormat Property

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Gets or sets a composite string that specifies how to format the Header property if it is displayed as a string.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
[BindableAttribute(true)]
public string HeaderStringFormat { get; set; }
<object HeaderStringFormat="string" .../>

Property Value

Type: System.String
A composite string that specifies how to format the Header property if it is displayed as a string. The default is null.

Identifier field

HeaderStringFormatProperty

Metadata properties set to true

None

HeaderStringFormat can be a predefined, composite, or custom string format. For more information about string formats, see Formatting Types. If you set the HeaderTemplate or HeaderTemplateSelector property of a HeaderedContentControl, the HeaderStringFormat property is ignored.

The following example binds a TabControl to a collection of Student objects. The Student class has a Name property, a collection of Course objects, and implements the IFormattable.ToString method to return either the Name of the student or a string that lists the student's courses. The example uses HeaderStringFormat to put a student's name in the Header of each TabItem (which inherits from HeaderedContentControl), and the TabControl.ContentStringFormat to display the course list for each student in the Content of the TabItem.


<Grid>
  <Grid.Resources>
    <src:Students x:Key="Students"/>

    <Style TargetType="TabItem">
      <Setter Property="HeaderStringFormat" Value="n"/>
      <Setter Property="FontFamily" Value="Lucida Sans Unicode"/>
      <Setter Property="Foreground" Value="Green"/>
      <Setter Property="FontWeight" Value="Bold"/>
    </Style>
  </Grid.Resources>

  <TabControl ItemsSource="{StaticResource Students}"
              FontFamily="Lucida Console" Foreground="Navy"
              ContentStringFormat="cl"/>
</Grid>


The following example implements the IFormattable.ToString method to return either the Name of the student or a string that lists the student's courses.


public string ToString(string format, IFormatProvider formatProvider)
{
    // 'n': print the name only.
    if (format == "n")
    {
        return Name;
    }

    // 'cl': print the course list.
    if (format == "cl")
    {
        string stringFormat = "{0,-25}{1,-30}{2,-10}\r\n";

        StringBuilder str = new StringBuilder();

        str.AppendLine(); 
        str.AppendFormat(stringFormat, "Title", "Description", "ID");
        str.AppendLine(); 

        foreach (Course c in Courses)
        {
            str.AppendFormat(stringFormat, c.Title, c.Description, c.SectionID);
        }

        return str.ToString();
    }

    return this.ToString();
}


.NET Framework

Supported in: 4.5, 4, 3.5 SP1, 3.0 SP2

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8 Consumer Preview, Windows Server 8 Beta, Windows 7, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.