Partager via


StyleSelector Classe

Définition

Fournit une méthode pour appliquer des styles selon une logique personnalisée.

public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
Héritage
StyleSelector

Exemples

L’exemple suivant montre comment définir un StyleSelector qui définit un Style pour une ligne. Cet exemple définit la Background couleur en fonction de l’index de ligne.

public class ListViewItemStyleSelector : StyleSelector
{
    public override Style SelectStyle(object item, 
        DependencyObject container)
    {
        Style st = new Style();
        st.TargetType = typeof(ListViewItem);
        Setter backGroundSetter = new Setter();
        backGroundSetter.Property = ListViewItem.BackgroundProperty;
        ListView listView = 
            ItemsControl.ItemsControlFromItemContainer(container) 
              as ListView;
        int index = 
            listView.ItemContainerGenerator.IndexFromContainer(container);
        if (index % 2 == 0)
        {
            backGroundSetter.Value = Brushes.LightBlue;
        }
        else
        {
            backGroundSetter.Value = Brushes.Beige;
        }
        st.Setters.Add(backGroundSetter);
        return st;
    }
}
Public Class ListViewItemStyleSelector
    Inherits StyleSelector
    Public Overrides Function SelectStyle(ByVal item As Object, ByVal container As DependencyObject) As Style
        Dim st As New Style()
        st.TargetType = GetType(ListViewItem)
        Dim backGroundSetter As New Setter()
        backGroundSetter.Property = ListViewItem.BackgroundProperty
        Dim listView As ListView = TryCast(ItemsControl.ItemsControlFromItemContainer(container), ListView)
        Dim index As Integer = listView.ItemContainerGenerator.IndexFromContainer(container)
        If index Mod 2 = 0 Then
            backGroundSetter.Value = Brushes.LightBlue
        Else
            backGroundSetter.Value = Brushes.Beige
        End If
        st.Setters.Add(backGroundSetter)
        Return st
    End Function
End Class

L’exemple suivant montre comment définir un ResourceKey pour le StyleSelector. Le namespc préfixe est mappé à un espace de noms CLR et à l’assembly correspondant où est StyleSelector défini. Pour plus d’informations, consultez Espaces de noms XAML et mappage d’espaces de noms pour XAML WPF.

<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>

L’exemple suivant montre comment définir la ItemContainerStyleSelector propriété d’un ListView sur cette StyleSelector ressource.

<ListView 
      ItemsSource="{Binding Source={StaticResource EmployeeData}, 
                                        XPath=Employee}"
      ItemContainerStyleSelector="{DynamicResource myStyleSelector}" >      
  <ListView.View>
    <GridView>
      <GridViewColumn DisplayMemberBinding="{Binding XPath=FirstName}" 
                      Header="First Name" Width="120"/>
      <GridViewColumn DisplayMemberBinding="{Binding XPath=LastName}" 
                      Header="Last Name" Width="120"/>
      <GridViewColumn DisplayMemberBinding="{Binding XPath=FavoriteCity}" 
                      Header="Favorite City" Width="120"/>
    </GridView>
  </ListView.View>
</ListView>

Pour obtenir un exemple de création d’un sélecteur pour choisir une ressource de style défini, consultez l’implémentation de , qui vous permet d’utiliser DataTemplateSelector.SelectTemplateune logique personnalisée pour sélectionner un DataTemplate, en fonction d’un concept similaire.

Remarques

Pour créer un StyleSelector qui applique un style basé sur une logique personnalisée, créez une sous-classe de la StyleSelector classe et implémentez la SelectStyle méthode .

Constructeurs

StyleSelector()

Initialise une nouvelle instance de la classe StyleSelector.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
SelectStyle(Object, DependencyObject)

En cas de substitution dans une classe dérivée, retourne un Style basé sur la logique personnalisée.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi