2009-09-18 52 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

只需將默認可見性更改爲隱藏而不是摺疊。

顯然,如果您使用摺疊,元素將從可視樹中移除,並且RelativeSource不再有效。

+0

更改爲隱藏是不行Jalfp – Russ 2009-09-18 15:35:02

+0

我構建了一個示例應用程序,使用您的代碼隱藏而不是摺疊。也許我不明白你想完成什麼...... – japf 2009-09-21 07:14:12

1

在處理綁定問題時,我通常會搜索Output窗口以查找任何綁定錯誤。它們都以System.Windows.DataError開頭。那麼,Output窗口中是否有任何錯誤?

+0

嗯,我會說,我不知道輸出窗口中的DataError。謝謝,我解決了其他幾個綁定問題,但是,這個具體問題並沒有引發錯誤。 – Russ 2009-09-18 17:08:28

+0

哦,對不起,+1教我新的東西。 – Russ 2009-09-18 17:09:00

+0

試試這個,有兩個DataTriggers,當IsSelected爲true時,另一個爲false。並刪除該Setter。我懷疑的是,依賴屬性解析總是選擇該設置值,因爲它具有比樣式觸發更高的優先級。我以前遇到過這個問題,但我不記得確切的情況。 – Trainee4Life 2009-09-18 18:03:22