Je souhaite ajouter un DataBinding par Codebehind pour une propriété jointe et je souhaite afficher la propriété Canvas.Left
dans un TextBox. Comment ajouter cette propriété?Ajout de DataBinding pour la propriété attachée par le code derrière
6
A
Répondre
17
Il est un peu difficile de votre question, mais je pense que vous demandez comment on lierait à la propriété attachée Canvas.Left
et l'afficher dans un TextBox. Je suppose que vous le voulez pour un contrôle autre que le TextBox.
<Canvas>
<TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" />
<Button x:Name="button" Content="Press me" />
</Canvas>
Notez les parenthèses autour de la propriété jointe.
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);
-3
Oui, une toile n'a pas de propriété gauche. c'est une propriété attachée pour un FrameworkItem dans un Canvas Content.
<Canvas Width="100" Height="100">
<TextBox Name="top" Canvas.Left="12"></TextBox>
</Canvas>
+2
Ceci ne répond pas du tout à la question. – trapicki
La liaison de code ne fonctionne pas comme dans l'exemple de code. La troisième ligne devrait se lire comme binding.Path = new PropertyPath (Canvas.Left); – Matze
Merci ageektrapped. Mais je recherche un chemin par code derrière, exactement par C#. Je connais le chemin par WPF. – Taladan