2009-09-18 6 views
0

ListViewItem을 선택한 경우에만 표시하고 싶은 이미지가 있습니다. 내가 가지고있는 코드는 작동하지 않지만, 내가 원하는 것을 보여주고 있다고 생각합니다.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> 

답변

0

기본 표시를 축소 대신 숨김으로 변경하기 만하면됩니다.

분명히 Collapsed를 사용하면 요소가 시각적 트리에서 제거되고 RelativeSource가 더 이상 작동하지 않습니다.

+0

숨기기로 변경하는 것은 아무런 의미가 없습니다. – Russ

+0

코드를 숨김 대신 숨김으로 사용하는 샘플 응용 프로그램을 작성했습니다. 어쩌면 당신이 원하는 것을 이해하지 못했을 것입니다 ... – japf

1

바인딩 문제를 처리 할 때 일반적으로 출력 창을 검색하여 바인딩 오류를 찾습니다. 모두 System.Windows.DataError로 시작합니다. 출력 창에 오류가 있습니까?

+0

글쎄, 나는 출력 창에 DataError에 대해 몰랐다고 말할 것입니다. 고맙습니다. 몇 가지 다른 바인딩 문제가 수정되었습니다. 그러나이 특정 문제는 오류를 발생시키지 않습니다. – Russ

+0

아, 죄송합니다. +1 새로운 것을 가르쳐 줬습니다. – Russ

+0

IsSelected가 true이고 false가 아닌 두 개의 DataTriggers가 있습니다. 그리고 세터도 제거하십시오. 필자가 의심하는 바는 종속성 속성 분석은 항상 스타일러 트리거보다 더 높은 우선 순위를 갖는 setter 값을 선택한다는 것입니다. 전에이 문제에 직면 해 왔지만 정확한 상황을 기억하지 못합니다. – Trainee4Life

관련 문제