在ItemTemplate中访问DataContext的属性

amr*_*der 1 xaml windows-phone-7

我的datacontext有两个属性:Items它是一个集合,DetailsVisiblity它是类型的枚举Visiblity.

在网页上我有一个ListboxItemsSource="{Binding Entries}".在里面DataTemplate,我可以将东西绑定到Items的属性,但是如何访问DetailsVisiblity哪个属性DataContext

DataContext有两个属性:ObservableCollection<Item> EntriesVisibility DetailsVisiblity.Item类有两个属性:Title和Details.

这是观点.如何Visiblity将第二个绑定TextBlockDetailsVisiblity属性?

<ListBox ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Title}" />
                <TextBlock Text="{Binding Details}" Visibility="{Binding ???}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

Fre*_*lad 8

您可以命名ListBox,并在Binding中使用ElementName引用它,在Path中使用DataContext.DetailsVisibility

<ListBox x:Name="listBox" ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Title}" />
                <TextBlock Text="{Binding Details}"
                           Visibility="{Binding ElementName=listBox,
                                                Path=DataContext.DetailsVisibilty}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)