首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取控件内的控件

获取控件内的控件
EN

Stack Overflow用户
提问于 2013-03-06 16:28:34
回答 2查看 259关注 0票数 1

我正在开发一个WinRT应用程序,并且对我想做的事情有了一个想法。我想在单击时显示列表元素中的列表。因此,当我单击第一个列表中的一个项目时,该项目中的一个列表将展开。

代码语言:javascript
复制
<ListView x:Name="SectionListView" SelectionChanged="ListSelectionChanged">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <StackPanel>
                    <Grid>
                        <TextBlock Text="{Binding Name}" />
                        <Image Source="ms-appx:///Assets/EmbossedEllipse.png" />
                        <TextBlock Text="{Binding NumberOfQuestions}"  />
                    </Grid>
                </StackPanel>
                <ListView x:Name="SubMenu" ItemsSource="{Binding Branches}" Visibility="Collapsed">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <TextBlock Text="{Binding Name}" />
                            </StackPanel>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

当我单击"SectionListView“中的一个元素时,我希望该项中的"SubMenu”可见。

感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-06 18:05:10

您可以使用转换器来更改SubMenu可见性的状态。

编辑:添加一个属性,以确定您的项目已被选中(布尔值)。

代码语言:javascript
复制
<ListView x:Name="SubMenu" ItemsSource="{Binding Branches}" Visibility="{Binding IsSelected, Converter={StaticResource BooleanToVisibilityConverter}}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Name}" />
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

转换器:

代码语言:javascript
复制
public sealed class BooleanToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        return value is Visibility && (Visibility)value == Visibility.Visible;
    }
}

希望它能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2013-03-06 19:08:05

使用ListBoxItem.IsSelected attached属性,它就是为了这样一个目的而引入的。这里有一些XAML供您入门(如果您还没有这样做,请在某个地方声明一个BooleanToVisibilityConverter )。

代码语言:javascript
复制
<ListView x:Name="SubMenu" Visibility="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Converter={StaticResource BooleanToVisibilityConverter}}" ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15242337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档