如何在选择ListViewItem时触发控件事件?

时间:2009-09-18 13:07:02

标签: .net wpf .net-3.5 styles

我想要仅在选择ListViewItem时显示图像。我的代码不起作用,但我认为它说明了我想要完成的任务。

<GridViewColumn>
   <GridViewColumn.CellTemplate>
      <DataTemplate>
         <Image Height="20">
            <Image.Style>
               <Style TargetType="{x:Type Image}">
                  <Setter Property="Visibility" Value="Collapsed" />
                  <Style.Triggers>
                     <DataTrigger Binding="{Binding RelativeSource=
                           {
                              RelativeSource 
                              Mode=FindAncestor, 
                              AncestorType={x:Type ListViewItem}
                           }, Path=IsSelected}" Value="True">
                        <Setter Property="Visibility" Value="Visible" />
                        <Setter Property="Source" Value="/Russound.Windows;component/Resources/2leftarrow-64.png" />
                        <Setter Property="ToolTip" Value="Selected" />
                     </DataTrigger>
                  </Style.Triggers>
               </Style>
            </Image.Style>
         </Image>
      </DataTemplate>
   </GridViewColumn.CellTemplate>
</GridViewColumn>

2 个答案:

答案 0 :(得分:1)

在处理绑定问题时,我通常会在“输出”窗口中搜索以查找任何绑定错误。它们都以System.Windows.DataError开头。那么,输出窗口中是否有任何错误?

答案 1 :(得分:0)

只需将默认的“可见性”更改为“隐藏”而不是“折叠”。

显然,如果您使用Collapsed,则会从​​可视树中删除该元素,并且RelativeSource不再有效。