Многоуровневая привязка источника XAML / проблема с путями - PullRequest
0 голосов
/ 06 мая 2010

У меня есть объект XAML с именем ChromeWindow (полученный из Window), в коде которого находится DependencyProperty с именем AppChrome, в котором хранится ссылка на связанный объект ApplicationChrome XAML (полученный из UserControl). XAML-файл ApplicationChrome содержит несколько x:Name 'объектов (например, TextBlock и Border), к которым я хочу привязаться из XAML ChromeWindow. Корень ChromeWindow - это x:Name 'как rootWindow в XAML, поэтому я подумал, что одна из этих привязок будет работать:

{Binding ElementName=rootWindow, Path=AppChrome.CaptionTextBlock.Text, Mode=OneWay}

Но это жалуется на ошибку пути BindingExpression, из-за которой свойство 'CaptionTextBlock' (x: Name'd TextBlock в XAML AppChrome) не может быть найдено для объекта типа ApplicationChrome

Итак, я попытался связать intead:

{Binding Source=AppChrome.CaptionTextBlock, Path=Text, Mode=OneWay}

И все же не повезло, на этот раз снова жалуется на ошибку пути BindingExpression, но на этот раз он не может найти свойство CaptionTextBlock для объекта типа String

1 Ответ

0 голосов
/ 06 мая 2010

Даже если вы назвали эти элементы, они не будут доступны для привязки, если для них не предоставлены свойства зависимостей.

ApplicationChrome потребуется предоставить свойство зависимости, называемое CaptionTextBlock, чтобы эта привязка работала.

Возможно, вы могли бы объяснить, почему вы пытаетесь связать эти объекты, чтобы мы могли лучше понять ваш сценарий. Вероятно, есть лучший способ сделать это, потому что этот вид связывания не только грязный, но и довольно необычный.

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