Мой сценарий ListView: В текущей странице я поставил DataContext
, который состоит из двух свойств, первый (заголовок страницы) Question
, второй (список элементов) Replies
.Получить родительский DataContext внутри элемента
Я связывании Replies
к ItemsSource
свойству ListView
:
<ListView x:Name="responseList" ItemsSource="{Binding replies}">
<ListView.ItemTemplate>
<DataTemplate>
<local:CustomControl />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
До этого момента нет никаких проблем. Внутри этого Custom Control
, Мне нужно также получить некоторые свойства элемента Question
(который находится за пределами ListView
), привязывая эти свойства к XAML CustomControl
.
Я смотрел на это, но не повезло, так как FindAncestor
не признается в WinRT: WPF Databinding: How do I access the "parent" data context?
Это другая ничего не возвращает, как DataContext
: How to access Parent's DataContext in Window 8 store apps
<UserControl ....>
<Grid Background="#33FFFFFF">
<Grid.Resources>
<local:converter1 x:Key="key" Question="{Binding Tag.Question, ElementName=responseList}"/>
</Grid.Resources>
</Grid>
</UserControl>
ElementName Решение будет работать только тогда, когда вы находитесь в том же контексте именования в качестве имени элемента, который вы ссылаетесь, который работает отлично в DataTemplates. Вы пытаетесь это изнутри Usercontrol, который представляет собой другой контекст именования. Я не думаю, что в настоящее время существует решение, которое можно сделать только через Xaml и Binding. Вероятно, вам нужно добавить родительское свойство навигации в свои ответы. –
Это именно то, что предложил Барт ван Ниероп в качестве ответа. :) –