StyleSelector Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Ger ett sätt att tillämpa format baserat på anpassad logik.
public ref class StyleSelector
public class StyleSelector
type StyleSelector = class
Public Class StyleSelector
- Arv
-
StyleSelector
Exempel
I följande exempel visas hur du definierar en StyleSelector som definierar en Style för en rad. I det Background här exemplet definieras färgen enligt radindexet.
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
I följande exempel visas hur du definierar en ResourceKey för StyleSelector. Prefixet namespc mappar till ett CLR-namnområde och motsvarande sammansättning där StyleSelector definieras. Mer information finns i XAML-namnområden och namnområdesmappning för WPF XAML.
<namespc:ListViewItemStyleSelector x:Key="myStyleSelector"/>
I följande exempel visas hur du anger egenskapen för en ItemContainerStyleSelector till den här ListView resursenStyleSelector.
<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>
Ett exempel på hur du skapar en väljare för att välja en definierad formatresurs finns i implementeringen av DataTemplateSelector.SelectTemplate, som gör att du kan använda anpassad logik för att välja en DataTemplate, baserat på ett liknande begrepp.
Kommentarer
Om du vill skapa en StyleSelector som använder ett format baserat på anpassad logik skapar du en underklass av StyleSelector klassen och implementerar SelectStyle metoden.
Konstruktorer
| Name | Description |
|---|---|
| StyleSelector() |
Initierar en ny instans av StyleSelector klassen. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| SelectStyle(Object, DependencyObject) |
När den åsidosätts i en härledd klass returneras en Style baserad på anpassad logik. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |