在ItemTemplate中访问DataContext的属性

时间:2011-01-03 00:26:06

标签: xaml windows-phone-7

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

在页面上,我有Listbox ItemsSource="{Binding Entries}"。在DataTemplate内,我可以将内容绑定到Items的属性,但是如何访问属于DetailsVisiblity的{​​{1}}?

DataContext有两个属性:DataContextObservableCollection<Item> Entries。 Item类有两个属性:Title和Details。

这是观点。如何将第二个Visibility DetailsVisiblity的{​​{1}}绑定到Visiblity属性?

TextBlock

1 个答案:

答案 0 :(得分: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>