2016-07-31 21 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

我想達成什麼是有默認隱藏的兩個按鈕(左,右),而應該成爲一個可見選定的項目。

我suposse,它可以使用觸發器?

回答

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您的用戶控件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不具有存取權限到現在VS檢查語法

+0

是啊,我國防部確切說,已經。對不起,你的時間會很多,但是不管怎麼樣 – user853710