2016-04-08 5 views
0

У меня есть проект WPF, где у меня есть GridView, встроенный в ListView, и я хочу изменить стиль для строк.Как стилизовать строки в GridView?

Я хочу изменить цвет, когда курсор находится выше.

Как это сделать?

Вот мой XAML

<ListView x:Name="list_User_Events" Background="{StaticResource BorderDarkGreen}" Foreground="White" BorderThickness="0" BorderBrush="{x:Null}" SelectionMode="Single"> 
<ListView.View> 
    <GridView> 
     <GridViewColumn Width="100" Header="Name" DisplayMemberBinding="{Binding Name}"></GridViewColumn> 
     <GridViewColumn Width="50" Header="Interval" DisplayMemberBinding="{Binding Interval}"></GridViewColumn> 
     <GridViewColumn Width="160" Header="Type" DisplayMemberBinding="{Binding EventType}"></GridViewColumn> 
     <GridViewColumn Header="Command" DisplayMemberBinding="{Binding Command}"></GridViewColumn> 
     <GridViewColumn Header="Action"> 
      <GridViewColumn.CellTemplate> 
       <DataTemplate> 
        <Button x:Name="btn_list_user_Event_Delete" Click="btn_list_user_Event_Delete_Click">Delete</Button> 
       </DataTemplate> 
      </GridViewColumn.CellTemplate> 
     </GridViewColumn> 
    </GridView> 
</ListView.View> 
</ListView> 
+0

Похоже, что вы установили ItemContainerStyle в стиль с 'TargetType =" {x: Type ListViewItem} "' –

+0

Ничего себе, что просто. Это сделало это, спасибо! Пожалуйста, дайте ответ, чтобы я мог его принять. –

+0

Удивительный! Я активировал VS, чтобы убедиться, что это сработает, но я все еще определял класс избранных viewmodel, когда вы его разрешили. –

ответ

2

Вам необходимо установить ItemContainerStyle на ListView в стиле с TargetType из ListViewItem:

<ListView 
    x:Name="list_User_Events" 
    Background="{StaticResource BorderDarkGreen}" 
    Foreground="White" 
    BorderThickness="0" 
    BorderBrush="{x:Null}" 
    SelectionMode="Single" 
    > 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <!-- Setters, Triggers, etc. --> 
     </Style> 
    </ListView.ItemContainerStyle> 

    <ListView.View> 
     <!-- etc. etc. snip snip --> 
    </ListView.View> 
</ListView> 

Если вы хотите использовать стиль для несколько похожих списков, вы должны определить его в Window.Resources или UserControl.Resources с атрибутом x:Key и использовать его в качестве статического ресурса: