Добавить привязку данных для присоединенного свойства в соответствии с кодом позади - PullRequest
6 голосов
/ 01 марта 2009

Я хочу добавить DataBinding для Codebehind для присоединенного свойства и хочу показать свойство Canvas.Left в TextBox. Как добавить это свойство?

Ответы [ 2 ]

18 голосов
/ 02 марта 2009

Это немного неясно из вашего вопроса, но я думаю, что вы спрашиваете, как можно связать прикрепленное свойство Canvas.Left и показать его в TextBox. Я предполагаю, что вы хотите это для элемента управления, кроме TextBox.

<Canvas>
   <TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" />
   <Button x:Name="button" Content="Press me" />
</Canvas>

Обратите внимание на скобки вокруг прикрепленного свойства.

EDIT: Чтобы сделать эквивалент в коде, используйте следующее:

Binding binding = new Binding();
binding.Source = button;
binding.Path = new PropertyPath(Canvas.LeftProperty);
textBox.SetBinding(TextBlock.TextProperty, binding);
0 голосов
/ 02 марта 2009

Да, у холста нет левого свойства. это присоединенное свойство для FrameworkItem в контенте Canvas.

<Canvas Width="100" Height="100">
   <TextBox Name="top" Canvas.Left="12"></TextBox>
</Canvas>
...