2012-07-18 8 views
8

J'ai créé un contrôle usercontrol, qui a 2 propriétés de dépendance. Je veux lier ces propriétés de dépendance à la propriété mainViewModel, de sorte que chaque fois que quelque chose est modifié dans le contrôle utilisateur, la propriété du parent est mise à jour.WPF lier la propriété usercontrol à la propriété parent

J'ai essayé, en le liant normalement mais cela n'a pas fonctionné. Comment puis-je lier le DP de l'utilisateur-contrôle à la propriété du parent.

J'ai essayé ceci: UC:

<TextBox Name="TextBox" Text="{Binding ElementName=UCName, Path=DP1, Mode=TwoWay}"/> 

MainWindow:

<UCName:UCName Width="330" CredentialName="{Binding Path=DP1, Mode=TwoWay}"></UCName:UCName> 

Merci

+0

Pourriez-vous s'il vous plaît fournir des exemples de code, y compris comment vous liez aux propriétés de dépendance. – Nathan

+0

vient d'éditer le message original – Ali

Répondre

18

dans votre reliure Pour la liaison aux propriétés du parent, vous devez utiliser RelativeSource. Comme ceci:

<TextBox Name="TextBox" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UCName:UCName}}, Path=DP1, Mode=TwoWay}"/> 

Détails: https://msdn.microsoft.com/en-us/library/ms743599(v=vs.100).aspx

ps: Ne pas oublier de définir UCName d'espace de noms.

[EDIT] URL modifiée pour la version .NET 4 de la documentation.

+0

Votre lien a été vicié. –

5

Quelque chose comme ceci:

<MainWindow DataContext="mainViewModel"> 

<local:TestControl ucDependProp="{Binding viewModelProp}/> 

</MainWindow> 


className: TestControl.xaml 
<UserControl Name="thisControl"> 
<TextBox Text="{Binding ElementName=thisControl, Path=ucDependProp}/> 
</UserControl> 

Le contrôle utilisateur ne doit pas être au courant du modèle de vue parent.

Questions connexes