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