2016-07-31 11 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
あなたはこのリソースdeclayユーザーコントロールthat.In達成するために結合およびコンバータを使用することができます

<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はアクセスもを持っていけません今すぐに構文を確認するために対

+0

ええ、私はドッドまったく、すでに。とにかくあなたの時間を浪費して申し訳ありませんが、ありがとう – user853710

関連する問題