问题描述
限时送ChatGPT账号..我的数据上下文有两个属性:Items
是一个集合,DetailsVisiblity
是 Visiblity
类型的 enum.
My datacontext has two properties: Items
which is a collection and DetailsVisiblity
which is enum of type Visiblity
.
在页面上,我有一个带有 ItemsSource="{Binding Entries}"
的 Listbox
.在 DataTemplate
中,我可以将东西绑定到 Items 的属性,但是如何访问 DetailsVisiblity
这是 DataContext
的属性?
On the page I have a Listbox
with ItemsSource="{Binding Entries}"
. Inside the DataTemplate
, I can bind stuff to properties of Items, but how do I get access to DetailsVisiblity
which is a property of DataContext
?
DataContext
有两个属性:ObservableCollection
和 Visibility DetailsVisiblity
.Item 类有两个属性:Title 和 Details.
DataContext
has two properties: ObservableCollection<Item> Entries
, and Visibility DetailsVisiblity
. Item class has two properties: Title and Details.
这是视图.如何将第二个 TextBlock
的 Visiblity
绑定到 DetailsVisiblity
属性?
Here is the view. How do I bind Visiblity
of the second TextBlock
to DetailsVisiblity
property?
<ListBox ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Title}" />
<TextBlock Text="{Binding Details}" Visibility="{Binding ???}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
推荐答案
您可以命名 ListBox,并在 Binding 中使用 ElementName 引用它,在 Path 中使用 DataContext.DetailsVisibility
You could name the ListBox and in the Binding you reference it with ElementName, and in Path you use 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>
这篇关于ItemTemplate 中 DataContext 的访问属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论