Связывание с предком в WPF

17

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

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

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

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

Сборка # 2
Application Shell

class Shell 
{
     public Client Client { get { return client; } set { client = value; } }
     OnStartup()
     {
          NavigationWindow window = new NavigationWindow();
          window.DataContext = this;
          window.Navigate(GetHomeView());
     }
}
    
задан Tedford 04.08.2010 в 15:49
источник

1 ответ

42

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

<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
                                                         AncestorType={x:Type Window}},
                                                         Path=DataContext.Client.Name}" />
    
ответ дан decyclone 04.08.2010 в 16:21
источник