2010-10-13 173 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