StyleSelector Klasse

Definition

Bietet die Option, Formate auf der Grundlage von benutzerdefinierter Logik anzuwenden.Provides a way to apply styles based on custom logic.

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

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie StyleSelector einen definieren, Style der einen für eine Zeile definiert.The following example shows how to define a StyleSelector that defines a Style for a row. In diesem Beispiel wird Background die Farbe gemäß dem Zeilen Index definiert.This example defines the Background color according to the row index.

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

Im folgenden Beispiel wird gezeigt, wie ein ResourceKey für das StyleSelectordefiniert wird.The following example shows how to define a ResourceKey for the StyleSelector. Das namespc -Präfix wird CLRCLR einem Namespace und der entsprechenden Assembly zugeordnet StyleSelector , in der definiert ist.The namespc prefix maps to a CLRCLR namespace and the corresponding assembly where the StyleSelector is defined. Weitere Informationen finden Sie unter XAML-Namespaces und Namespace Zuordnung für WPF-XAML.For more information, see XAML Namespaces and Namespace Mapping for WPF XAML.

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

Im folgenden Beispiel wird gezeigt, wie die ItemContainerStyleSelector -Eigenschaft ListView eines auf diese StyleSelector Ressource festgelegt wird.The following example shows how to set the ItemContainerStyleSelector property of a ListView to this StyleSelector resource.

<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 eines Selektor, um eine definierte Stil Ressource auszuwählen, finden Sie in der Implementierung DataTemplateSelector.SelectTemplatevon, mit der Sie benutzerdefinierte Logik verwenden können, DataTemplateum eine auf der Grundlage eines ähnlichen Konzepts auszuwählen.For an example of how to create a selector to choose a defined style resource, see the implementation of DataTemplateSelector.SelectTemplate, which allows you to use custom logic to select a DataTemplate, based on a similar concept.

Hinweise

Erstellen Sie eine StyleSelector Unterklasse StyleSelector der-Klasse, und implementieren Sie die-Methode, um einen zu erstellen, der SelectStyle auf der Grundlage benutzerdefinierter Logik einen Stil anwendet.To create a StyleSelector that applies a style based on custom logic, create a subclass of the StyleSelector class and implement the SelectStyle method.

Konstruktoren

StyleSelector()

Initialisiert eine neue Instanz von StyleSelector.Initializes a new instance of a StyleSelector.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
SelectStyle(Object, DependencyObject)

Gibt beim Überschreiben in einer abgeleiteten Klasse ein Style-Objekt auf der Grundlage einer benutzerdefinierten Logik zurück.When overridden in a derived class, returns a Style based on custom logic.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für:

Siehe auch