构建数据源
<Window.Resources><x:ArrayExtension x:Key="stringList"xmlns="clr-namespace:System;assembly=mscorlib"Type="String"><String>第一行</String><String>第二行</String><String>第三行</String><String>第四行</String></x:ArrayExtension></Window.Resources>
1. <ListView.ItemContainerStyle> + <ListView.View> 可以生效,背景色变颜色,
ListView.ItemContainerStyle 中存放触发器
ListView.View中存放数据
这样只能按列显示多列多行,不能多行多列作为一项显示
如下所示:
<ListView Grid.Row="0" Name="ItemList" ItemsSource="{StaticResource stringList}" ><ListView.ItemContainerStyle><Style TargetType="{x:Type ListViewItem}"><Setter Property="FontSize" Value="15" /><Setter Property="Margin" Value="0,-40,0,40" /><Style.Triggers><Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="#9C71B9" /><Setter Property="Foreground" Value="white" /></Trigger><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="Green" /><Setter Property="Foreground" Value="white" /></Trigger><Trigger Property="IsEnabled" Value="False"><Setter Property="Background" Value="#757575" /><Setter Property="Foreground" Value="black" /></Trigger></Style.Triggers></Style></ListView.ItemContainerStyle><ListView.View><GridView><GridViewColumn><GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding}" /></GridViewColumn></GridView></ListView.View></ListView>
2. <ListView.ItemContainerStyle> + <ListView.ItemTemplate> 不生效,背景色不改变颜色,
ListView.ItemContainerStyle 中存放触发器
ListView.ItemTemplate中存放数据
如下所示:
<ListView Name="ItemList" ItemsSource="{StaticResource stringList}"><ListView.ItemContainerStyle><Style TargetType="{x:Type ListViewItem}"><Setter Property="FontSize" Value="15" /><Setter Property="Margin" Value="0,-40,0,40" /><Style.Triggers><Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="#9C71B9" /><Setter Property="Foreground" Value="white" /></Trigger><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="Green" /><Setter Property="Foreground" Value="white" /></Trigger></Style.Triggers></Style></ListView.ItemContainerStyle><ListView.ItemTemplate><DataTemplate><StackPanel ><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding }" Height="30" Name="Label_Amount" Width="100" Foreground="White"/></StackPanel></StackPanel></DataTemplate></ListView.ItemTemplate></ListView>
3. 只有ListView.ItemContainerStyle,可以生效
数据放在<Setter Property="Template">里,触发器放在 <Style.Triggers>,如下所示:
<ListView Width="300" Height="400" x:Name="celist" ItemsSource="{StaticResource stringList}" Background="Black"><ListView.ItemContainerStyle><Style TargetType="ListViewItem"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListBoxItem"><Border Background="{TemplateBinding Background}"><StackPanel ><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding }" Height="30" Name="Label_Amount" Width="100" Foreground="White"/></StackPanel><StackPanel HorizontalAlignment="Left" Orientation="Horizontal"><TextBlock Text="{Binding }" Name="Label_ShortDescription" Width="200" Foreground="White"/></StackPanel></StackPanel></Border></ControlTemplate></Setter.Value></Setter><Style.Triggers><Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="#9C71B9" /><Setter Property="Foreground" Value="white" /></Trigger><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="Green" /><Setter Property="Foreground" Value="white" /></Trigger></Style.Triggers></Style></ListView.ItemContainerStyle></ListView>