2010-08-04 11 views
18

Tengo una ventana en un ensamblaje que tiene un control TextBlock que quiero vincular al valor de una propiedad de una clase que es propiedad del DataContext de ese Windows Parent. La clase que sirve como DataContext solo se define dentro del segundo ensamblaje. Mi pregunta es qué tipo debo especificar como Tipo en mi declaración vinculante. ¿Puedo usar el tipo de propiedad de DataContext que es común entre los dos ensamblajes o necesito usar el tipo de DataContext?Vinculando a un ancestro en WPF

A continuación es un prototipo de cómo creo que debería funcionar, pero ya que no es que estoy confundido acerca de algo :)

Asamblea # 1
Ventana

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

Asamblea # 2
Aplicación Shell

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

Respuesta

45

la siguiente debería funcionar:

<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
                 AncestorType={x:Type Window}}, 
                 Path=DataContext.Client.Name}" /> 
+0

impresionante que hizo el truco! – Tedford

Cuestiones relacionadas