Привязка к предку в WPF - PullRequest
       0

Привязка к предку в WPF

26 голосов
/ 04 августа 2010

У меня есть окно в одной сборке, которое имеет элемент управления TextBlock, который я хочу связать со значением свойства класса, которое является свойством DataContext этого родительского окна. Класс, который служит в качестве DataContext, определяется только во второй сборке. У меня вопрос, какой тип мне нужно указать в качестве Типа в моем обязательном утверждении. Могу ли я просто использовать тип свойства DataContext, который является общим для двух сборок, или мне нужно использовать тип DataContext?

Ниже приведен прототип того, как я думаю, что это должно работать, но так как это не так, я что-то запутался:)

Сборка № 1
Окно

<TextBlock 
    Text="{Binding RelativeSource={RelativeSource 
        AncestorType={x:Type client:Client}}, Path=Name }"/>

Сборка № 2
Оболочка приложения

class Shell 
{
     public Client Client { get { return client; } set { client = value; } }
     OnStartup()
     {
          NavigationWindow window = new NavigationWindow();
          window.DataContext = this;
          window.Navigate(GetHomeView());
     }
}

1 Ответ

57 голосов
/ 04 августа 2010

должно работать следующее:

<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
                                                         AncestorType={x:Type Window}},
                                                         Path=DataContext.Client.Name}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...