StyleSelector Klas

Definitie

Biedt een manier om stijlen toe te passen op basis van aangepaste logica.

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

Voorbeelden

In het volgende voorbeeld ziet u hoe u een StyleSelector voor een rij definieert Style . In dit voorbeeld wordt de Background kleur gedefinieerd op basis van de rijindex.

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

In het volgende voorbeeld ziet u hoe u een ResourceKey voor de StyleSelector. Het namespc voorvoegsel wordt toegewezen aan een CLR-naamruimte en de bijbehorende assembly waarin het StyleSelector is gedefinieerd. Zie XAML-naamruimten en naamruimtetoewijzingen voor WPF XAML voor meer informatie.

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

In het volgende voorbeeld ziet u hoe u de ItemContainerStyleSelector eigenschap van een ListView resource instelt op deze 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>

Voor een voorbeeld van het maken van een selector om een gedefinieerde stijlresource te kiezen, raadpleegt u de implementatie van DataTemplateSelector.SelectTemplate, waarmee u aangepaste logica kunt gebruiken om een DataTemplate, op basis van een vergelijkbaar concept te selecteren.

Opmerkingen

Als u een StyleSelector stijl wilt maken die een stijl toepast op basis van aangepaste logica, maakt u een subklasse van de StyleSelector klasse en implementeert u de SelectStyle methode.

Constructors

Name Description
StyleSelector()

Initialiseert een nieuw exemplaar van de StyleSelector klasse.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
SelectStyle(Object, DependencyObject)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een Style resultaat geretourneerd op basis van aangepaste logica.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook