2010-10-13 127 views
1

例如如何查找公开依赖项属性的给定成员属性的依赖项属性标识符?

TextBox有一个Text属性,但我不能绑定到它,如果我要绑定,我必须绑定到TextProperty依赖项属性。

例如

textbox.Text = new Binding(“mypath”); “不工作

,我需要

textbox.SetBinding(TextBoxBase.TextProperty,“mypath中”)

,但是,这是一个巨大的,但是,我不知道这是财产的文本框.Text“直到运行时。我试图通过选择信息设置绑定,所以我知道我有一个框架元素,并且我知道我有一些属性。它可能是文本,它可能是itemssource,或其他东西。

因此给定了一个由依赖项属性标识符支持的任意属性,我如何找到该属性的依赖项属性标识符?

回答

2

虽然不是必需的,但强烈的鼓励的约定是在命名DependencyProperty字段时将属性字追加到CLR属性。我会开始寻找。

1

System.ComponentModel.DependencyPropertyDescriptor班可以帮助你在这里。

不过,我的建议是要问,从更广的角度看,你为什么相信你需要选择在运行时绑定?我怀疑可能有更好的方法。

+0

+1,这可能是最好的方法。您需要在运行时使用FromName方法 – 2010-10-13 20:47:42

+0

,因为我正在通过配置绑定系统编写一个约定,有点像caliburn micro,但不是映射默认属性的硬代码,我希望能够根据DefaultProperty对于给定的控制 – jrwren 2010-10-16 01:09:25