2016-06-06 17 views
0

Ich lese viele Dinge dazu, aber ich kann die Lösung für mein Problem nicht finden. Ich habe einen neuen Stil für ListViewItem definiert, aber die Eigenschaft von ItemsControl.AlternationIndex wird nicht ausgelöst.WPF ItemsControl.AlternationIndex funktioniert nicht in einem Trigger

<Style TargetType="ListViewItem"> 
    <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
    <Setter Property="VerticalContentAlignment" Value="Stretch" /> 
    <Setter Property="Background" Value="{DynamicResource StandardBackgroundColor}" /> 
    <Setter Property="Foreground" Value="{StaticResource StandardForegroundColor}" /> 
    <Style.Triggers> 
     <Trigger Property="ItemsControl.AlternationIndex" Value="0"> 
      <Setter Property="Background" Value="#181818" /> 
     </Trigger> 
     <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
      <Setter Property="Background" Value="#626262" /> 
     </Trigger> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Background" Value="{StaticResource DisabledGray}" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
<Style x:Key="IOListViewItem" TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}"> 
    <Setter Property="Height" Value="60" /> 
    <Setter Property="FontSize" Value="18" /> 
    <Setter Property="FontWeight" Value="Bold" /> 
    <Setter Property="SnapsToDevicePixels" Value="true"/> 
    <Setter Property="OverridesDefaultStyle" Value="True"></Setter> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ListViewItem}"> 
       <Border Name="Border" Padding="2" SnapsToDevicePixels="true"> 
        <ContentPresenter 
           Focusable="True" 
           Visibility="Visible" 
           HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
           Margin="{TemplateBinding Padding}" 
           RecognizesAccessKey="True" 
           SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
           VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> 
       </Border> 
       <ControlTemplate.Triggers> 
        <Trigger Property="ItemsControl.AlternationIndex" Value="0"> 
         <Setter Property="Background" Value="Red" /> 
        </Trigger> 
        <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
         <Setter Property="Background" Value="#626262" /> 
        </Trigger> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Background" Value="{StaticResource DisabledGray}" /> 
        </Trigger> 
        <Trigger Property="IsSelected" Value="true"> 
         <Setter TargetName="Border" Property="Background" Value="{StaticResource Blue}"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Vielen Dank!

Antwort

0

gesetzt AlternationCount="2" für ListView verschiedene Farben für alternative Produkte nicht

auch Control in IOListViewItem Stil zu sehen, nicht verwenden Backround

<Border Name="Border" Padding="2" 
     Background="{TemplateBinding Background}" 
     SnapsToDevicePixels="true"> 
+0

ich tat es sowohl in XAML und programmatisch, aber es funktioniert nicht . –

+0

@Chiara, können Sie Ihren Code anzeigen, wo ListView deklariert ist? – ASh

+0

private readonly ListView _physicalChannelList = neues ListView(); _physicalChannelList.BorderBrush = (Pinsel) FindResource ("StandardBorderColor"); //_physicalChannelList.AlternationCount = 2; _physicalChannelList.ItemContainerStyle = (Stil) FindResource ("IOListViewItem"); Grid.SetRow (_physicalChannelList, 2); Grid.SetColumn (_physicalChannelList, 1); Grid.SetColumnSpan (_physicalChannelList, 2); _physicalChannelList.SelectionChanged + = UpdateAssociation; advSettingGrid.Children.Add (_physicalChannelList); –