我想了解Silverlight依賴項屬性系統的底層細節。DependencyObject的綁定上下文
我知道DependencyObject沒有顯式的DataContext屬性,甚至沒有父類的概念。
但是,派生自DependencyObject的Behavior類具有綁定使用它所附加的DataContext作爲綁定本身的源。
我的問題是:我可以從DependencyObject派生一個類,並以某種方式確定在Source上使用哪個其他對象進行綁定?或者更清楚的是:如何實現像Behavior類一樣的東西?
但還有一點值得注意:在將自定義DependencyObjectCollection附加到FrameworkElement並在其中插入DependencyObject的測試中,它確實(與ResourceDictionary行爲不同)不是繼承綁定的DataContext。 這項工作應該還是以另一種方式附加DataContext - 將DependencyObjects繼承到現有的FrameworkElements? 或換句話說,正如我在原始問題中所問的:我可以重新實現Behavior類嗎? – John
我不知道行爲究竟如何,但是因爲它們存在,所以可以做到。出於好奇,爲什麼要重新實施Behavior類?爲什麼不使用Microsoft提供的行爲? – Denis
您的觀點是,Behavior類是表達式混合庫的一部分,而不是核心,對吧?至於爲什麼不使用行爲:我只是把它們提出來讓我的問題清楚,我的真正意圖是簡單地理解什麼是可能的,哪些不是。 – John