2017-10-19 2 views
0

Je souhaite que mon contrôle utilisateur modifie le texte d'un TextBlock dans son parent. Le contrôle parent doit être capable de lier le TextBlock à une propriété dans le contrôle utilisateur. Le TextBlock ne lie pas actuellement.Contrôle de liaison à une propriété de contrôle utilisateur

Voici comment je suis en train d'essayer de le faire:

Contrôle parental:

<localcontrols:MyControl TextName="{Binding texttest}"/> 

<TextBlock x:Name="texttest"/> 

Code de contrôle de l'utilisateur:

public static readonly DependencyProperty TextNameProperty = 
    DependencyProperty.Register("TextName", typeof(TextBlock), typeof(MyControl), new PropertyMetadata((TextBlock)null, MyControl.TextNameValueChanged)); 

public TextBlock TextName 
{ 
    get 
    { 
     return (TextBlock)this.GetValue(MyControl.TextNameProperty); 
    } 
    set 
    { 
     this.SetValue(MyControl.TextNameProperty, value); 
    } 
} 

private static void TextNameValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
{ 
} 
+0

Avez-vous des erreurs de liaison lors de l'exécution dans la sortie? – mvermef

+0

RelativeSource est probablement nécessaire – mvermef

+0

@mvermef Je ne vois aucune erreur dans la sortie. Avez-vous des exemples de RelativeSource? – rhughes

Répondre

2
<localcontrols:MyControl TextName="{Binding ElementName=texttest}"/>