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 tanımlayan bir Style öğesinin nasıl tanımlanacağı StyleSelector gösterilmektedir. Bu örnek, Background rengi satır dizinine göre 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ına ve öğesinin tanımlandığı karşılık gelen derlemeye 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, bir ListView özelliğinin ItemContainerStyleSelector 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ı bir 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

Name Description
StyleSelector()

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

Yöntemler

Name Description
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()

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

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

Geçerli Objectbasit 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 bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.