WPF ListView多个ItemContainerStyles

WPF ListView多个ItemContainerStyles,wpf,itemcontainerstyle,Wpf,Itemcontainerstyle,这是我的WPF ListView,运行良好 <Window.Resources> <Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}"> <Style.Resources> <SolidColorBrush x:Key="Key1" Color="#f7fcfe" /> <SolidColorBrush x:Key="Key2"

这是我的WPF ListView,运行良好

<Window.Resources>
<Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}">
    <Style.Resources>
        <SolidColorBrush x:Key="Key1" Color="#f7fcfe" />
        <SolidColorBrush x:Key="Key2" Color="#fff1cf" />
        <SolidColorBrush x:Key="Key3" Color="#fdeff2" />
    </Style.Resources>
</Style></Window.Resources>

<ListView 
 Name="UserLst" Width="320"
    ItemContainerStyle="{StaticResource ItemContStyle}">                        
<ListView.View>
    <GridView>
        <GridView.ColumnHeaderContainerStyle>
            <Style>
                <Setter Property="UIElement.Visibility" Value="Collapsed" />
            </Style>
        </GridView.ColumnHeaderContainerStyle>
        <GridViewColumn Header="id" Width="100" DisplayMemberBinding="{Binding Path=_id}"/>
        <GridViewColumn Header="UserID" Width="200" DisplayMemberBinding="{Binding Path=_UserID}"/>
    </GridView>
</ListView.View>
在ListView代码中。 我一直在想是否有人能给我点启示

您可以使用继承上述样式:

<ListView Name="UserLst" Width="320">                        
   <ListView.ItemContainerStyle>
      <Style TargetType="ListViewItem" BasedOn="{StaticResource ItemContStyle}">
         <EventSetter Event="PreviewMouseLeftButtonDown"     
                      Handler="ListViewItem_PreviewMouseLeftButtonDown" />
      </Style>
   </ListView.ItemContainerStyle>
   ......
</ListView>

......

通过这种方式,您将从上述样式中获得setter和触发器,并且您可以提供自己的以及特定于ListView的。(就像您案例中的EventSetter)

这非常有效!我非常感谢你的快速回复和明确的解决方案。非常感谢你!
ItemContainerStyle="{StaticResource ItemContStyle}"
<ListView Name="UserLst" Width="320">                        
   <ListView.ItemContainerStyle>
      <Style TargetType="ListViewItem" BasedOn="{StaticResource ItemContStyle}">
         <EventSetter Event="PreviewMouseLeftButtonDown"     
                      Handler="ListViewItem_PreviewMouseLeftButtonDown" />
      </Style>
   </ListView.ItemContainerStyle>
   ......
</ListView>