2010-07-31 82 views

回答

0

如果」重新感興趣的話,你可以打開Reflector並查看一些與依賴項屬性和框架中綁定系統相關的代碼。有很多棘手的問題正在進行,以便對屬性路徑進行強健的高性能解析並將更改傳播到依賴項屬性。擁有標準的基礎架構還允許管理更復雜的用例,例如更新來自多個源的依賴屬性並解決優先級問題。例如,當動畫的默認設置是由樣式設置的屬性時,會頻繁出現。

依賴屬性的另一個好處是它們在內部封裝了很多行爲(如通知,驗證和強制),這意味着如果您看到依賴屬性,那麼您肯定會支持某些行爲。這與INotifyPropertyChanged相反,類實現者可能或可能不支持所公佈的接口。這意味着對於班級開發人員來說工作會更少

0

在DependencyProperty中的谷歌簡單搜索產生一些結果,你可能會發現相關。例如:http://blog.hackedbrain.com/articles/UnderstandingDependencyObjectAndDependencyProperty.aspx

而我想其中一個原因是上下文。綁定內置於WPF的基礎結構中,但C#類屬性不屬於此類。爲了讓WPF基礎結構找到可綁定屬性,您必須在代碼中聲明它們。此外,如果您聲明屬性,則會爲WPF基礎架構提供重要的元數據。

雖然我不同意,這將是更容易,如果這是可能的綁定到正規的屬性,但是這是certanly的不小的細節打擾您寶貴的大腦的情況下...

+0

其實我google了很多,但沒有發現任何令人信服的東西。問題是我們可以使用OneWayToSource並使用像目標一樣的普通屬性行爲。所以看起來像只有普通的屬性綁定是不允許的。規則應該至少是目標或源應該是依賴屬性。如果是這種情況,那麼「目標財產應該是財產」的說法並不能很好地保持。 – thewpfguy 2010-08-01 04:53:05