Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

GroupStyle.HeaderStringFormat propriété

 

Date de publication : novembre 2016

Obtient ou définit une chaîne composite qui spécifie comment mettre en forme l’en-tête si elle est affichée sous forme de chaîne.

Espace de noms:   System.Windows.Controls
Assembly:  PresentationFramework (dans PresentationFramework.dll)

public string HeaderStringFormat { get; set; }

Valeur de propriété

Type: System.String

Chaîne composite qui spécifie comment mettre en forme l’en-tête si elle est affichée sous forme de chaîne.

HeaderStringFormat peut être un format de chaîne prédéfini, composite ou personnalisé. Pour plus d’informations sur les formats de chaîne, consultez la page Mise en forme des types dans .NET Framework. Si vous définissez la HeaderTemplate ou HeaderTemplateSelector propriété d’un GroupStyle, le HeaderStringFormat propriété est ignorée.

L’exemple suivant crée un ListBox qui regroupe une collection d’éléments par gamme de prix. Le convertisseur, GroupByPrice, retourne une valeur entière qui se situe au-dessus du prix de chaque élément. Par exemple, si le prix d’un article est comprise entre 0 et 100, le convertisseur retourne 100. L’exemple utilise le HeaderStringFormat pour créer une chaîne qui inclut la limite supérieure de chaque gamme de prix. Par exemple, aux États-Unis, les éléments qui sont moins de 100 dollars sont regroupés sous le titre « Éléments de moins de 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>

L’exemple suivant illustre la GroupByPrice (classe), la PurchaseItem classe et la collection qui le ListBox est liée à.

// 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))));

    }

}

.NET Framework
Disponible depuis 3.0
Retour au début
Afficher: