Freigeben über


StyleSelector Klasse

Definition

Bietet eine Möglichkeit, Formatvorlagen basierend auf 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 Sie eine StyleSelector Zeile definieren, die eine Style Zeile definiert. In diesem Beispiel wird die Background Farbe gemäß 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 Sie eine ResourceKey für die StyleSelector. Das namespc Präfix wird einem CLR-Namespace und der entsprechenden Assembly zugeordnet, in der die StyleSelector Datei definiert ist. Weitere Informationen finden Sie unter XAML-Namespaces und Namespacezuordnung für WPF-XAML.

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

Das folgende Beispiel zeigt, wie die ItemContainerStyleSelector Eigenschaft einer ListView Ressource 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 zum Erstellen einer Selektor zum Auswählen einer definierten Formatressource finden Sie in der Implementierung von DataTemplateSelector.SelectTemplate, mit der Sie benutzerdefinierte Logik verwenden können, um ein DataTemplate, basierend auf einem ähnlichen Konzept, auszuwählen.

Hinweise

Wenn Sie eine StyleSelector Formatvorlage erstellen möchten, die auf benutzerdefinierter Logik basiert, erstellen Sie eine Unterklasse der StyleSelector Klasse, und implementieren Sie die SelectStyle Methode.

Konstruktoren

Name Beschreibung
StyleSelector()

Initialisiert eine neue Instanz der StyleSelector-Klasse.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
SelectStyle(Object, DependencyObject)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird eine Style basierend auf benutzerdefinierter Logik zurückgegeben.

ToString()

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

(Geerbt von Object)

Gilt für:

Weitere Informationen