我的datacontext有两个属性:Items
是一个集合,DetailsVisiblity
是枚举,类型为Visiblity
。
在页面上,我有Listbox
ItemsSource="{Binding Entries}"
。在DataTemplate
内,我可以将内容绑定到Items的属性,但是如何访问属于DetailsVisiblity
的{{1}}?
DataContext
有两个属性:DataContext
和ObservableCollection<Item> Entries
。 Item类有两个属性:Title和Details。
这是观点。如何将第二个Visibility DetailsVisiblity
的{{1}}绑定到Visiblity
属性?
TextBlock
答案 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>