Ajouter la liaison de données pour la propriété attachée par code derrière
-
03-07-2019 - |
Question
Je souhaite ajouter un DataBinding par Codebehind pour une propriété attachée et afficher la propriété Canvas.Left
dans une zone de texte. Comment puis-je ajouter cette propriété?
La solution
Votre question manque quelque peu de clarté, mais je pense que vous demandez comment lier la propriété attachée Canvas.Left
et l’afficher dans une zone de texte. Je suppose que vous le souhaitez pour un contrôle autre que la zone de texte.
<Canvas>
<TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" />
<Button x:Name="button" Content="Press me" />
</Canvas>
Notez les crochets autour de la propriété attachée.
EDIT: Pour faire l’équivalent en code, utilisez ce qui suit:
Binding binding = new Binding();
binding.Source = button;
binding.Path = new PropertyPath(Canvas.LeftProperty);
textBox.SetBinding(TextBlock.TextProperty, binding);
Autres conseils
Oui, une toile n'a pas de propriété de gauche. c'est une propriété attachée à un FrameworkItem dans un contenu Canvas.
<Canvas Width="100" Height="100">
<TextBox Name="top" Canvas.Left="12"></TextBox>
</Canvas>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow