Vercas
Vercas

Reputation: 9141

How do I apply a style to the ListViewItems in WPF?

First of all, I am new to WPF.


I have this style ready for my items:

    <Style x:Key="lvItemHover" TargetType="{x:Type ListViewItem}">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Foreground" Value="Black" />
            </Trigger>
        </Style.Triggers>
    </Style>

How do I give this style to the items in my ListView?

Upvotes: 16

Views: 30539

Answers (3)

GSoft Consulting
GSoft Consulting

Reputation: 718

This is the simplest way to define ListViewItem style from static resource:

    <ListView x:Name="listView" ItemContainerStyle="{StaticResource lvItemHover}">
    </ListView>

Upvotes: 6

Stecya
Stecya

Reputation: 23266

Try this

     <ListView x:Name="listView">
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
               <Style.Triggers>
                  <Trigger Property="IsMouseOver" Value="true">
                     <Setter Property="Foreground" Value="Black" />
                  </Trigger>
               </Style.Triggers>
            </Style>
        </ListView.ItemContainerStyle>
        <ListViewItem>Item1</ListViewItem>
        <ListViewItem>Item2</ListViewItem>
        <ListViewItem>Item3</ListViewItem>
    </ListView>

Upvotes: 32

biju
biju

Reputation: 18000

You have many options

  • Remove the x:Key="lvItemHover" from your style and it will get applied to all your ListViewItems

  • Apply the style to each ListViewItem like

    <ListViewItem Style="{StaticResource lvItemHover}">Item1</ListViewItem>

  • Put your style inside the ListView.ItemContainerStyle as in the above post

Upvotes: 6

Related Questions