Связывание трех уровней вниз в иерархии данных - PullRequest
0 голосов
/ 06 декабря 2011

Хорошо, я не против чувствовать себя глупым.

Я пытаюсь привязать к ObservableCollection на моей модели представления.Иерархия данных выглядит следующим образом: Родитель - содержит список дочерних объектов.Ничего сложного.

На внешней сетке моего дерева Xaml я устанавливаю ссылку на модель представления с помощью:

<Grid DataContext="{StaticResource src}">

Да, src ссылается на модель представления и две дюжины привязок передтекстовое поле проблемы работает нормально.В моем дереве Xaml нет другого DataContext.Теперь я подхожу к простому текстовому полю.Я хочу привязать текстовое поле к child.property.

Это работает:

  <TextBlock 
     DataContext="{Binding Parent}"
     Text="{Binding Path=Child.Property}"
     Style="{StaticResource headerMajor}"
  />

Это не работает:

  <TextBlock 
     Text="{Binding Source=Parent,Path=Child.Property}"
     Style="{StaticResource headerMajor}"
  />

Я думал, что это два способа сказать одно и то же.Обычно я задаюсь вопросом, а потом продолжаю кодировать.Тем не менее, в некоторых советах, которые я прочитал, упоминалось, что атрибуты DataContext, скрытые в элементах управления Xaml, могут привести к трудностям при поиске ошибок.

Пожалуйста, объясните, почему один работает, а другой - нет.Это поможет мне понять всю связующую тему.

Джим

1 Ответ

1 голос
/ 06 декабря 2011

Source - это свойство, которое содержит object, используемое в качестве источника для привязки, оно не разрешается в свойство. Следовательно, ваша привязка ищет путь свойства Child.Property в строке "Parent", видите проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...