2016-07-31 11 views
0

Dies ist das Steuerelement, das ich an eine Sammlung gebunden habe.So blenden Sie die Untersteuerung der Elementvorlage aus, wenn sie nicht ausgewählt ist

<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> 

Und das ist, wie es aussieht

enter image description here

Was ich erreichen möchte ist, die beiden Tasten haben (links und rechts) standardmäßig ausgeblendet, sollte aber auf ein sichtbar werden Ausgewähltes Objekt.

Ich bitte, es könnte mit Triggern getan werden?

Antwort

0

ich habe mir

<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

Sie verbindlich und Konverter können that.In Ihr Usercontrol declay diese Ressource

<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> 

Bitte beachten Sie die erfolgte live.I erreichen nicht Zugang haben zu vs jetzt die Syntax zu überprüfen

+0

Ja, genau das dod ich schon. Entschuldige, dass du deine Zeit verschwendest, aber trotzdem danke – user853710

Verwandte Themen