通过代码向附加属性添加数据绑定

8

我希望在代码后端为一个附加属性添加数据绑定,并在一个文本框中显示Canvas.Left属性。我该如何添加此属性?

1个回答

21

从你的问题描述中不太清楚,但我认为你是在问如何绑定到附加属性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
代码绑定不像示例代码那样工作。 第三行应该写成 binding.Path = new PropertyPath(Canvas.Left); - Matze
感谢ageektrapped。但我正在寻找一种通过codebehind的方式,确切地说是通过C#。我知道WPF的方法。 - Taladan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接