2013-03-26 4 views
4

У меня есть ListBox, как я показываю там. Дело в том, что в определении предмета у меня много материала с сетками и элементами. Я хочу изменить видимость одного изображения в элементе только для того, чтобы сделать его видимым только при выборе самого элемента.WPF - Доступ к детям с триггера

мне удалось изменить, например, фон и общий глядя на товар, когда он выбран, но я не могу получить доступ к внутренним элементам :(

<ListBox stuff stuff stuff> 
    <ListBox.ItemTemplate> 
     <DataTemplate DataType="local:Patient"> 
      <grids , borders, things, stuff 
       <Image Name="image1" source opacity stuff/> 
      </ grids bordes and design in general> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 

    <ListBox.ItemContainerStyle> 
     <Style TargetType="{x:Type ListBoxItem}"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Foreground" Value="White"/> 
        <!--HERE I WANT TO CHANGE VISIBILITY OF THE IMAGE--> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListBox.ItemContainerStyle> 

    <ListBox.Template> 
     <!-- some other styles when deselected and other things --> 
    </ListBox.Template> 
</ListBox> 

Я попытался с помощью:

<Setter TargetName="physiciansSettinsImage" Property="Visibility" Value="Visible"/> 

Но он не может быть установлен на Стиль сеттер. Любой ключ?

вся конструкция довольно сложна, поэтому я хотел бы избежать, насколько это возможно перекодирование его.

ответ

5

Переместите курсор на DataTemplate.

Я полагаю image1Visibility является Collapsed

<DataTemplate.Triggers> 
    <DataTrigger Binding="{Binding RelativeSource= 
     {RelativeSource Mode=FindAncestor, AncestorType= 
      {x:Type ListBoxItem}},Path=IsSelected}" Value="True"> 
     <Setter TargetName="image1" Property="Visibility" Value="Visible"/> 
    </DataTrigger> 
</DataTemplate.Triggers> 

Теперь, когда выбран элемент вашего Image's Visibility установлен в Visible.

+0

So sweet bro. Быстро и чисто. Я должен признать, что все это немного сбивает меня с толку, но ... понемногу :) – javirs

Смежные вопросы