2016-04-08 28 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

你需要有一個ListViewItem的TargetType的上ListView控件設置ItemContainerStyle的風格:

<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屬性並將其用作靜態資源:

<ListView 
    ItemContainerStyle="{StaticResource ListViewGridViewItemStyle}"