Udostępnij za pośrednictwem


StyleSelector Klasa

Definicja

Zapewnia sposób stosowania stylów na podstawie logiki niestandardowej.

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

Przykłady

W poniższym przykładzie pokazano, jak zdefiniować element StyleSelector definiujący wiersz Style . W tym przykładzie zdefiniowano Background kolor zgodnie z indeksem wierszy.

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

W poniższym przykładzie pokazano, jak zdefiniować element ResourceKey dla .StyleSelector Prefiks namespc jest mapowy na przestrzeń nazw CLR i odpowiedni zestaw, w którym StyleSelector jest zdefiniowany. Aby uzyskać więcej informacji, zobacz Przestrzenie nazw XAML i Mapowanie przestrzeni nazw dla WPF XAML.

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

W poniższym przykładzie pokazano, jak ustawić ItemContainerStyleSelector właściwość obiektu ListView na ten StyleSelector zasób.

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

Aby zapoznać się z przykładem tworzenia selektora w celu wybrania zdefiniowanego zasobu stylu, zobacz implementację DataTemplateSelector.SelectTemplateelementu , która umożliwia użycie logiki niestandardowej do wybrania elementu DataTemplatena podstawie podobnej koncepcji.

Uwagi

Aby utworzyć StyleSelector styl stosowany na podstawie logiki niestandardowej, utwórz podklasę StyleSelector klasy i zaimplementuj metodę SelectStyle .

Konstruktory

StyleSelector()

Inicjuje nowe wystąpienie klasy StyleSelector.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
SelectStyle(Object, DependencyObject)

W przypadku zastąpienia w klasie pochodnej zwraca wartość opartą Style na logice niestandardowej.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też