2011-01-03 3 views
1

Мой DataContext имеет два свойства: Items которых является сбор и DetailsVisiblity который перечисление типа Visiblity.Доступ свойство DataContext в ItemTemplate

На странице у меня есть Listbox с ItemsSource="{Binding Entries}". Внутри DataTemplate я могу привязать материал к свойствам Items, но как получить доступ к 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> 
+0

Введите структуру класса кода. – decyclone

ответ

8

Вы могли бы назвать ListBox и в связывании вы ссылаться на него с ElementName, и в пути вы используете 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> 
+0

@amrinder: Это было то, что вы были после, или я пропустил этот вопрос? –

+0

Я обновил свой вопрос с дополнительной информацией. – amrinder

+0

@amrinder: Попробуйте мой обновленный ответ –

Смежные вопросы