Доступ к свойству DataContext в ItemTemplate - PullRequest
1 голос
/ 03 января 2011

Мой datacontext имеет два свойства: Items, который является коллекцией, и DetailsVisiblity, который enum типа Visiblity.

На странице у меня есть Listboxс ItemsSource="{Binding Entries}".Внутри DataTemplate я могу связать вещи со свойствами Предметов, но как мне получить доступ к DetailsVisiblity, который является свойством DataContext?

DataContext, имеет два свойства: ObservableCollection<Item> Entriesи Visibility DetailsVisiblity.Класс элемента имеет два свойства: заголовок и подробности.

Вот вид.Как связать Visiblity второго TextBlock с DetailsVisiblity свойством?

<ListBox ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Title}" />
                <TextBlock Text="{Binding Details}" Visibility="{Binding ???}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

1 Ответ

8 голосов
/ 03 января 2011

Вы можете назвать ListBox, и в привязке вы ссылаетесь на него с 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...