Bagikan melalui


StyleSelector.SelectStyle(Object, DependencyObject) Metode

Definisi

Saat ditimpa di kelas turunan Style , mengembalikan berdasarkan logika kustom.

public:
 virtual System::Windows::Style ^ SelectStyle(System::Object ^ item, System::Windows::DependencyObject ^ container);
public virtual System.Windows.Style SelectStyle(object item, System.Windows.DependencyObject container);
abstract member SelectStyle : obj * System.Windows.DependencyObject -> System.Windows.Style
override this.SelectStyle : obj * System.Windows.DependencyObject -> System.Windows.Style
Public Overridable Function SelectStyle (item As Object, container As DependencyObject) As Style

Parameter

item
Object

Konten.

container
DependencyObject

Elemen tempat gaya akan diterapkan.

Mengembalikan

Mengembalikan gaya khusus aplikasi untuk diterapkan; jika tidak, null.

Contoh

Contoh berikut menunjukkan cara menentukan StyleSelector yang menentukan Style baris. Contoh ini mendefinisikan Background warna sesuai dengan indeks baris.

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

Contoh berikut menunjukkan cara menentukan ResourceKey untuk StyleSelector. namespc Awalan memetakan ke namespace CLR dan rakitan yang sesuai tempat StyleSelector ditentukan. Untuk informasi selengkapnya, lihat Namespace Layanan XAML dan Pemetaan Namespace layanan untuk WPF XAML.

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

Contoh berikut menunjukkan cara mengatur ItemContainerStyleSelector properti sumber ListView daya ini StyleSelector .

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

Untuk contoh cara membuat pemilih untuk memilih sumber daya gaya yang ditentukan, lihat implementasi DataTemplateSelector.SelectTemplate, yang memungkinkan Anda menggunakan logika kustom untuk memilih DataTemplate, berdasarkan konsep serupa.

Keterangan

Untuk membuat StyleSelector yang menerapkan gaya berdasarkan logika kustom, buat subkelas StyleSelector kelas dan terapkan SelectStyle metode .

Berlaku untuk

Lihat juga