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!
ich tat es sowohl in XAML und programmatisch, aber es funktioniert nicht . –
@Chiara, können Sie Ihren Code anzeigen, wo ListView deklariert ist? – ASh
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); –