Condividi tramite


StyleSelector Classe

Definizione

Fornisce una modalità per applicare gli stili in base alla logica personalizzata.

public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
Ereditarietà
StyleSelector

Esempio

Nell'esempio seguente viene illustrato come definire un StyleSelector oggetto che definisce un Style oggetto per una riga. In questo esempio viene definito il Background colore in base all'indice di riga.

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

Nell'esempio seguente viene illustrato come definire un ResourceKey oggetto per .StyleSelector Il namespc prefisso esegue il mapping a uno spazio dei nomi CLR e all'assembly corrispondente in cui è definito .StyleSelector Per altre informazioni, vedere Spazi dei nomi XAML e Mapping dello spazio dei nomi per XAML WPF.

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

Nell'esempio seguente viene illustrato come impostare la ItemContainerStyleSelector proprietà di un oggetto ListView su questa StyleSelector risorsa.

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

Per un esempio di come creare un selettore per scegliere una risorsa di stile definita, vedere l'implementazione di DataTemplateSelector.SelectTemplate, che consente di usare la logica personalizzata per selezionare un DataTemplateoggetto , in base a un concetto simile.

Commenti

Per creare un StyleSelector oggetto che applica uno stile basato sulla logica personalizzata, creare una sottoclasse della StyleSelector classe e implementare il SelectStyle metodo .

Costruttori

StyleSelector()

Inizializza una nuova istanza della classe StyleSelector.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
SelectStyle(Object, DependencyObject)

In caso di override in una classe derivata, restituisce un oggetto Style basato sulla logica personalizzata.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche