0

ListBoxカスタムを使用するがありますItemTemplate。選択したアイテムに応じてVisibility、(テンプレート内の) プロパティを設定したいと考えています。TextBlockトリガーを使用してそれを行うことを考えています。しかし、現在のアイテムが選択されているかどうかをテンプレート内で知るにはどうすればよいですか?

<DataTemplate x:Key="myTemplate">
    <StackPanel Orientation="Horizontal">
        <Image Tag="{Binding priority}" Loaded="SetIconPriority"/>
        <Image Tag="{Binding alarm}" Loaded="SetIconAlarm"/>
        <!-- I want this TextBlock to be visible only when item is selected -->
        <TextBlock Text="{Binding description}"/>
    </StackPanel>
</DataTemplate>

編集:うまくいきます、ありがとう!コード:

            <TextBlock Grid.Column="2" Grid.Row="1" Text="{Binding opis}">
                <TextBlock.Style>
                    <Style TargetType="TextBlock">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=ListBoxItem}}" Value="False">
                                <Setter Property="Visibility" Value="Collapsed"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBlock.Style>
            </TextBlock>
4

1 に答える 1

3

beingでRelativeSourceバインディングを使用します。AncestorTypeListBoxItem

<DataTrigger Binding="{Binding IsSelected,
                               RelativeSource={RelativeSource AncestorType=ListBoxItem}}"
             Value="True">

(ロジックを逆にして、代わりにデフォルト値を回避したいCollapse場合FalseがありますSetter

于 2013-09-10T22:30:27.883 に答える