Ich möchte eine DataBinding pro Codebehind für eine angefügte Eigenschaft hinzufügen und die Canvas.Left
-Eigenschaft in einer TextBox anzeigen möchten. Wie füge ich diese Eigenschaft hinzu?Hinzufügen von DataBinding für angefügte Eigenschaft pro Code Hinter
6
A
Antwort
17
Es ist etwas unklar von Ihrer Frage, aber ich denke, Sie fragen, wie man an die angefügte Eigenschaft Canvas.Left
binden und es in einer TextBox anzeigen würde. Ich nehme an, Sie wollen es für ein anderes Steuerelement als die TextBox.
<Canvas>
<TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" />
<Button x:Name="button" Content="Press me" />
</Canvas>
Beachten Sie die Klammern um die angefügte Eigenschaft.
EDIT: das Äquivalent in Code Verwenden Sie dazu die folgenden Schritte aus:
Binding binding = new Binding();
binding.Source = button;
binding.Path = new PropertyPath(Canvas.LeftProperty);
textBox.SetBinding(TextBlock.TextProperty, binding);
-3
Ja, eine Leinwand hat keine linke Eigenschaft. Es ist eine angefügte Eigenschaft für ein FrameworkItem in einem Canvas-Inhalt.
<Canvas Width="100" Height="100">
<TextBox Name="top" Canvas.Left="12"></TextBox>
</Canvas>
+2
Dies beantwortet die Frage überhaupt nicht. – trapicki
Code-Bindung funktioniert nicht wie in Beispielcode. Die dritte Zeile sollte wie folgt lauten: binding.Path = new PropertyPath (Canvas.Left); – Matze
Danke ageektrapped. Aber ich suche einen Weg pro Codebehind, genau nach C#. Ich kenne den Weg per WPF. – Taladan