为每个代码后面的附加属性添加DataBinding

时间:2009-03-01 20:28:17

标签: c# data-binding code-behind attached-properties

我想为附加的Property添加每个Codebehind的DataBinding,并希望在TextBox中显示Canvas.Left属性。如何添加此属性?

2 个答案:

答案 0 :(得分:18)

从你的问题中有点不清楚,但我认为你问的是如何绑定到附加属性Canvas.Left并在TextBox中显示它。我假设你想要它而不是TextBox。

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

请注意附加属性周围的括号。

编辑: 要在代码中执行等效操作,请使用以下命令:

Binding binding = new Binding();
binding.Source = button;
binding.Path = new PropertyPath(Canvas.LeftProperty);
textBox.SetBinding(TextBlock.TextProperty, binding);

答案 1 :(得分:-3)

是的,画布没有左侧属性。它是Canvas内容中FrameworkItem的附加属性。

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