Teilen über


StyleSelector Klasse

Definition

Bietet die Option, Formate auf der Grundlage von benutzerdefinierter Logik anzuwenden.

public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
Vererbung
StyleSelector

Beispiele

Im folgenden Beispiel wird gezeigt, wie ein StyleSelector definiert wird, das eine Style für eine Zeile definiert. In diesem Beispiel wird die Background Farbe entsprechend dem Zeilenindex definiert.

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

Das folgende Beispiel zeigt, wie ein ResourceKey für definiert wird StyleSelector. Das namespc Präfix wird einem CLR-Namespace und der entsprechenden Assembly zugeordnet, in der der StyleSelector definiert ist. Weitere Informationen finden Sie unter XAML-Namespaces und Namespacezuordnung für WPF XAML.

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

Im folgenden Beispiel wird gezeigt, wie die ItemContainerStyleSelector Eigenschaft eines ListView auf diese StyleSelector Ressource festgelegt wird.

<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>

Ein Beispiel für das Erstellen eines Selektors zum Auswählen einer definierten Formatressource finden Sie in der Implementierung von , mit der DataTemplateSelector.SelectTemplateSie eine benutzerdefinierte Logik basierend auf einem DataTemplateähnlichen Konzept auswählen können.

Hinweise

Um eine StyleSelector zu erstellen, die einen Stil basierend auf benutzerdefinierter Logik anwendet, erstellen Sie eine Unterklasse der StyleSelector -Klasse, und implementieren Sie die SelectStyle -Methode.

Konstruktoren

StyleSelector()

Initialisiert eine neue Instanz der StyleSelector-Klasse.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SelectStyle(Object, DependencyObject)

Gibt beim Überschreiben in einer abgeleiteten Klasse eine auf benutzerdefinierter Logik basierende Style zurück.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen