Silverlight 如何切换图像';s在列表框中的可见性';基于SelectedItem的ItemTemplate

Silverlight 如何切换图像';s在列表框中的可见性';基于SelectedItem的ItemTemplate,silverlight,windows-phone-7,Silverlight,Windows Phone 7,我在列表框的ItemTemplate中有一个图像。XAML中是否有方法根据列表框“SelectedItem”切换其可见性 换句话说,我希望图像仅在选中ListBoxItem时可见,但希望避免代码隐藏 谢谢。编辑列表框的ItemContainerStyle,然后您就可以访问列表框项目的所有状态。这些包括聚焦和选定的状态。如果您在Blend中执行此操作,它应该位于列表框上下文菜单上的“编辑其他模板”下 然后您应该能够更改所选状态的布局,这应该是您所需要的?编辑列表框的ItemContainerSty

我在列表框的ItemTemplate中有一个图像。XAML中是否有方法根据列表框“SelectedItem”切换其可见性

换句话说,我希望图像仅在选中ListBoxItem时可见,但希望避免代码隐藏


谢谢。

编辑列表框的ItemContainerStyle,然后您就可以访问列表框项目的所有状态。这些包括聚焦和选定的状态。如果您在Blend中执行此操作,它应该位于列表框上下文菜单上的“编辑其他模板”下


然后您应该能够更改所选状态的布局,这应该是您所需要的?

编辑列表框的ItemContainerStyle,然后您就可以访问列表框项目的所有状态。这些包括聚焦和选定的状态。如果您在Blend中执行此操作,它应该位于列表框上下文菜单上的“编辑其他模板”下


然后,您应该能够更改所选状态的布局,这应该是您需要的?

在列表框的ItemContainerStyle中(在Blend中,右键单击对象和时间线中的列表框,然后选择编辑其他模板/编辑生成的项目容器(ItemContainerStyle)/编辑副本…在“使用”对话框中选择新样式的名称和位置。)

在生成的样式中,找到ContentPresenter标记。在该区域的某个地方(取决于您的特定布局需要),您将希望删除图像项。将其可见性设置为绑定到模板化父级的IsSelected属性

<Image Source="{Binding Property2}" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsSelected, Mode=TwoWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>

在列表框的ItemContainerStyle中(在“混合”中,右键单击“对象和时间线”中的列表框,然后选择“编辑其他模板/编辑生成的项目容器(ItemContainerStyle)/编辑副本…”在“使用”对话框中为新样式选择名称和位置。)

在生成的样式中,找到ContentPresenter标记。在该区域的某个地方(取决于您的特定布局需要),您将希望删除图像项。将其可见性设置为绑定到模板化父级的IsSelected属性

<Image Source="{Binding Property2}" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsSelected, Mode=TwoWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>

您可以通过ListBox的SelectionChanged事件来实现这一点

<Grid x:Name="LayoutRoot" Background="White">
    <ScrollViewer Height="500" Width="200">
        <ListBox x:Name="lstItems" SelectionChanged="lstItems_SelectionChanged">
            <ListBoxItem>
                <StackPanel Orientation="Horizontal">
                    <Image Source="Selected.png" Visibility="Collapsed"/>
                    <TextBlock Text="Item 1"/>
                </StackPanel>
            </ListBoxItem>
            <ListBoxItem>
                <StackPanel Orientation="Horizontal">
                    <Image Source="Selected.png" Visibility="Collapsed"/>
                    <TextBlock Text="Item 2"/>
                </StackPanel>
            </ListBoxItem>
        </ListBox>
    </ScrollViewer>
</Grid>

您可以通过ListBox的SelectionChanged事件来实现这一点

<Grid x:Name="LayoutRoot" Background="White">
    <ScrollViewer Height="500" Width="200">
        <ListBox x:Name="lstItems" SelectionChanged="lstItems_SelectionChanged">
            <ListBoxItem>
                <StackPanel Orientation="Horizontal">
                    <Image Source="Selected.png" Visibility="Collapsed"/>
                    <TextBlock Text="Item 1"/>
                </StackPanel>
            </ListBoxItem>
            <ListBoxItem>
                <StackPanel Orientation="Horizontal">
                    <Image Source="Selected.png" Visibility="Collapsed"/>
                    <TextBlock Text="Item 2"/>
                </StackPanel>
            </ListBoxItem>
        </ListBox>
    </ScrollViewer>
</Grid>