2016-07-31 3 views
0

Это элемент управления, который я связал с коллекцией.Как скрыть подтабличный шаблон шаблона, если он не выбран

<ListBox Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=Pallets}" > 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <DockPanel> 
       <Button Content="C" DockPanel.Dock="Left"/> 
       <Button Content="D" DockPanel.Dock="Right"/> 
       <TextBlock Text="{Binding Path=Name}"/> 
      </DockPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ListBox> 

И вот как это выглядит

enter image description here

То, что я хотел бы добиться того, чтобы иметь две кнопки (левая и правая), скрытые по умолчанию, но они должны стать видимыми на выбранный элемент.

Я, судя по всему, это можно сделать с помощью триггеров?

ответ

0

Я получил его сам

<Button Content="C" DockPanel.Dock="Left"> 
    <Button.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger 
        Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}}}" 
        Value="False"> 

        <Setter Property="Button.Visibility" Value="Hidden" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
</Button> 
0

Вы можете использовать переплет и конвертер для достижения that.In вашего UserControl declay этого ресурса

<UserControl.Resources>  
    <BooleanToVisibilityConverter x:Key="BoolToVis"/> 
</UserControl.Resources> 

<ListBox Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=Pallets}" > 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <DockPanel> 
       <Button Content="C" DockPanel.Dock="Left" Visibility={Bindin Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}},Converter{StaticResource BoolToVis }"}/> 
       <Button Content="D" DockPanel.Dock="Right" Visibility={Bindin Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}},Converter{StaticResource BoolToVis }"}/> 
       <TextBlock Text="{Binding Path=Name}"/> 
      </DockPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ListBox> 

Обратите внимание, что было сделано live.I не имеет-доступ to vs теперь, чтобы проверить синтаксис

+0

Да, я делаю это точно. Извините за то, что уделил время, но спасибо в любом случае – user853710

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