WPF Listview разные альтернативные цвета строк для 3 списков различий ..?

Как установить альтернативные цвета строк для WPF Listview. Если у меня есть только 1 список, который я могу установить в XAML, но в моем случае необходимо изменить альтернативные цвета строк на основе списка. Например, у меня есть 3 списка различий ...
1) порядок по названию компании,
2) порядок по секторам
3) порядок по рыночной стоимости
Каждый список должен иметь свои собственные альтернативные цвета строк .
Как я могу это сделать (в C # или в файле XAML). Любые идеи / предложения будут приветствоваться


person raj    schedule 27.11.2010    source источник


Ответы (1)


Это должно работать независимо от того, что вы делаете со списком, поскольку ItemsControl.AlternationIndex является свойством зависимости и должно обновляться:

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <Style TargetType="ListBoxItem">
        <Style.Triggers>
            <Trigger Property="ItemsControl.AlternationIndex"  Value="0">
                <Setter Property="Background" Value="AliceBlue" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<StackPanel>  
    <ListBox Name="bob" AlternationCount="2">
        <ListBoxItem Content="Herald"/>
        <ListBoxItem Content="Kumar" />
        <ListBoxItem Content="Bill" />
        <ListBoxItem Content="Dudley" />
        <ListBoxItem Content="Jack" />
    </ListBox>
    <Button Click="Button_Click">boo</Button>
</StackPanel>

Code Behind to test changes to items:

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    Dim item1 As ListBoxItem = bob.Items(4)
    bob.Items.Remove(item1)
    bob.Items.Insert(0, item1)
End Sub
person J Cooper    schedule 28.11.2010
comment
Если вы имели в виду, что вам нужен другой цвет строки, используемый в зависимости от сортировки, я думаю, вы захотите вместо этого использовать MultiTrigger, где одно свойство триггера является индексом чередования, а одно свойство подключено к свойству, которое указывает, какой вид выполняется использовал. - person J Cooper; 28.11.2010