StyleSelector Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) |