1

这是我的 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.ItemContainerStyle>
<Style TargetType="ListViewItem">
    <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />
</Style></ListView.ItemContainerStyle>

我不能添加这个,因为已经有

ItemContainerStyle="{StaticResource ItemContStyle}"

在 ListView 代码中。我一直想知道是否有人为我提供了一些启示!

4

1 回答 1

0

您可以使用BasedOn继承上述风格:

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

这样,您将获得上述样式的设置器、触发器,并且您可以提供自己的以及特定于您的 ListView。(就像你的情况下的EventSetter)

于 2014-08-17T07:36:30.410 回答