Aracılığıyla paylaş


StyleSelector Sınıf

Tanım

Özel mantığa dayalı stiller uygulamak için bir yol sağlar.

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

Örnekler

Aşağıdaki örnekte, bir satır için öğesini StyleSelector tanımlayan bir Style öğesinin nasıl tanımlanacağı gösterilmektedir. Bu örnek, Background satır dizinine göre rengi tanımlar.

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

Aşağıdaki örnekte için nasıl tanımlanacağı ResourceKey gösterilmektedir StyleSelector. Ön namespc ek bir CLR ad alanıyla ve öğesinin tanımlandığı karşılık gelen derlemeyle StyleSelector eşler. Daha fazla bilgi için bkz . WPF XAML için XAML Ad Alanları ve Ad Alanı Eşlemesi.

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

Aşağıdaki örnekte, özelliğinin ItemContainerStyleSelector ListView bu StyleSelector kaynağa nasıl ayarlanacağı gösterilmektedir.

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

Tanımlı stil kaynağı seçmek için seçici oluşturma örneği için, benzer bir kavram temelinde bir seçmek DataTemplateiçin özel mantık kullanmanıza olanak tanıyan uygulamasına DataTemplateSelector.SelectTemplatebakın.

Açıklamalar

Özel mantığı temel alan bir stil uygulayan bir oluşturmak StyleSelector için sınıfının bir alt sınıfını StyleSelector oluşturun ve yöntemini uygulayın SelectStyle .

Oluşturucular

StyleSelector()

StyleSelector sınıfının yeni bir örneğini başlatır.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
SelectStyle(Object, DependencyObject)

Türetilmiş bir sınıfta geçersiz kılındığında, özel mantığı temel alan bir Style döndürür.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.