GroupStyle.HeaderStringFormat Eigenschap

Definitie

Hiermee wordt een samengestelde tekenreeks opgehaald of ingesteld die aangeeft hoe de header moet worden opgemaakt als deze wordt weergegeven als een tekenreeks.

public:
 property System::String ^ HeaderStringFormat { System::String ^ get(); void set(System::String ^ value); };
public string HeaderStringFormat { get; set; }
member this.HeaderStringFormat : string with get, set
Public Property HeaderStringFormat As String

Waarde van eigenschap

Een samengestelde tekenreeks die aangeeft hoe de header moet worden opgemaakt als deze wordt weergegeven als een tekenreeks.

Voorbeelden

In het volgende voorbeeld wordt een ListBox verzameling items gegroepeerd op prijsbereik. Het conversieprogramma retourneert GroupByPriceeen geheel getal dat boven de prijs van elk item ligt. Als de prijs van een artikel bijvoorbeeld tussen 0 en 100 ligt, retourneert het conversieprogramma 100. In het voorbeeld wordt de HeaderStringFormat tekenreeks gebruikt om een tekenreeks te maken die de bovengrens voor elk prijsbereik bevat. In de Verenigde Staten worden items die onder de 100 dollar liggen bijvoorbeeld gegroepeerd onder een kop met de tekst 'Items onder $ 100'.

<StackPanel>
  <StackPanel.Resources>

      <src:ItemsForSale x:Key="MyData"/>
      <src:GroupByPrice x:Key="GroupByPrice"/>
  
      <CollectionViewSource x:Key="PriceGroup" Source="{StaticResource MyData}">
      
        <CollectionViewSource.GroupDescriptions>
          <PropertyGroupDescription PropertyName="Price"
                                    Converter="{StaticResource GroupByPrice}"/>
      </CollectionViewSource.GroupDescriptions>
    </CollectionViewSource>
  </StackPanel.Resources>
  
  <ListBox ItemsSource="{Binding Source={StaticResource PriceGroup}}"
           DisplayMemberPath="Description">
    <ListBox.GroupStyle>
      <GroupStyle HeaderStringFormat="Items under {0:c}"/>
    </ListBox.GroupStyle>
  </ListBox>
</StackPanel>

In het volgende voorbeeld ziet u de GroupByPrice klasse, de PurchaseItem klasse en de verzameling waaraan de ListBox verzameling is gebonden.

// The converter to group the items.
public class GroupByPrice : IValueConverter
{
    public object Convert(object value,
                          Type targetType,
                          object parameter,
                          System.Globalization.CultureInfo culture)
    {

        if (!(value is double))
        {
            return null;
        }

        double itemPrice = (double)value;

        if (itemPrice < 100)
        {
            return 100;
        }

        if (itemPrice < 250)
        {
            return 250;
        }

        if (itemPrice < 500)
        {
            return 500;
        }

        return 1000;
    }

    public object ConvertBack(object value,
                              Type targetType,
                              object parameter,
                              System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

// The type of objects that are added to the ItemsControl.
public class PurchaseItem 
{
    public string Description { get; set; }
    public double Price { get; set; }
    public DateTime OfferExpires { get; set; }

    public PurchaseItem()
    {
    }

    public PurchaseItem(string desc, double price, DateTime endDate)
    {
        Description = desc;
        Price = price;
        OfferExpires = endDate;
    }

    public override string ToString()
    {
        return String.Format("{0}, {1:c}, {2:D}", Description, Price, OfferExpires);
    }
}

// The source of the ItemsControl.
public class ItemsForSale : ObservableCollection<PurchaseItem>
{

    public ItemsForSale()
    {
        Add((new PurchaseItem("Snowboard and bindings", 120, new DateTime(2009, 1, 1))));
        Add((new PurchaseItem("Inside C#, second edition", 10, new DateTime(2009, 2, 2))));
        Add((new PurchaseItem("Laptop - only 1 year old", 499.99, new DateTime(2009, 2, 28))));
        Add((new PurchaseItem("Set of 6 chairs", 120, new DateTime(2009, 2, 28))));
        Add((new PurchaseItem("My DVD Collection", 15, new DateTime(2009, 1, 1))));
        Add((new PurchaseItem("TV Drama Series", 39.985, new DateTime(2009, 1, 1))));
        Add((new PurchaseItem("Squash racket", 60, new DateTime(2009, 2, 28))));
    }
}
' The converter to group the items.
Public Class GroupByPrice
    Implements IValueConverter
    Public Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert

        If Not(TypeOf value Is Double) Then
            Return Nothing
        End If

        Dim itemPrice As Double = CDbl(value)

        If itemPrice < 100 Then
            Return 100
        End If

        If itemPrice < 250 Then
            Return 250
        End If

        If itemPrice < 500 Then
            Return 500
        End If

        Return 1000



    End Function

    Public Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
        Throw New NotImplementedException()
    End Function
End Class

' The type of objects that are added to the ItemsControl.
Public Class PurchaseItem
    Public Property Description() As String
    Public Property Price() As Double
    Public Property OfferExpires() As Date

    Public Sub New()
    End Sub

    Public Sub New(ByVal desc As String, ByVal price As Double, ByVal endDate As Date)
        Description = desc
        Me.Price = price
        OfferExpires = endDate
    End Sub

    Public Overrides Function ToString() As String
        Return String.Format("{0}, {1:c}, {2:D}", Description, Price, OfferExpires)
    End Function
End Class

' The source of the ItemsControl.
Public Class ItemsForSale
    Inherits ObservableCollection(Of PurchaseItem)

    Public Sub New()
        Add((New PurchaseItem("Snowboard and bindings", 120, New Date(2009, 1, 1))))
        Add((New PurchaseItem("Inside VB, second edition", 10, New Date(2009, 2, 2))))
        Add((New PurchaseItem("Laptop - only 1 year old", 499.99, New Date(2009, 2, 28))))
        Add((New PurchaseItem("Set of 6 chairs", 120, New Date(2009, 2, 28))))
        Add((New PurchaseItem("My DVD Collection", 15, New Date(2009, 1, 1))))
        Add((New PurchaseItem("TV Drama Series", 39.985, New Date(2009, 1, 1))))
        Add((New PurchaseItem("Squash racket", 60, New Date(2009, 2, 28))))

    End Sub

End Class

Opmerkingen

HeaderStringFormat kan een vooraf gedefinieerde, samengestelde of aangepaste tekenreeksindeling zijn. Zie Opmaaktypen voor meer informatie over tekenreeksindelingen. Als u de HeaderTemplate of HeaderTemplateSelector eigenschap van een GroupStyleeigenschap instelt, wordt de HeaderStringFormat eigenschap genegeerd.

Van toepassing op