I want to add a DataBinding per Codebehind for a attached Property and want to show the Canvas .Leftproperty in a textbox. How do I add this property?
A:
It's somewhat unclear from your question ,but I think you're asking how one would bind to the attached property Canvas.Left and show it in a TextBox. I'll assume you want it for a control other than the TextBox.
<Canvas>
<TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" />
<Button x:Name="button" Content="Press me" />
</Canvas>
Note the brackets around the attached property.
EDIT: To do the equivalent in code, use the following:
Binding binding = new Binding();
binding.Source = button;
binding.Path = new PropertyPath("Canvas.Left");
textBox.SetBinding(TextBlock.TextProperty, binding);
ageektrapped
2009-03-01 21:36:49
Code binding does not work as in sample code.Third line should read like binding.Path = new PropertyPath(Canvas.Left);
Matze
2010-04-15 14:28:46
A:
Yes, a canvas has no left property. it is a attached property for a FrameworkItem in a Canvas Content.
<Canvas Width="100" Height="100">
<TextBox Name="top" Canvas.Left="12"></TextBox>
</Canvas>
Taladan
2009-03-01 21:37:03
A:
Thank ageektrapped.
But i search a way per codebehind, exactly per C#. I know the way per WPF.
Taladan
2009-03-01 21:41:07