本文中的例子本質上就是利用附加屬性傳遞附加物件,并在觀察者模式中使用反射技術實作指定名稱的事件引數傳遞,
本文中框架任然有很多問題,目前來說是勉強能用,有可以修改的地方盡管說!
我們知道附加屬性可以隨意在控制元件上使用,
創建附加屬性時寫DependencyProperty的這一部分 ,并且需要使用Set__方法和Get__方法,其實不必要全部寫出也是可以,甚至都可以不用RegisterAttached方法,
因為xaml其實讀取Set__方法和Get__方法,包括依賴屬性(其實可以使用只讀模式)哦,但是使用dependencyproperty這樣注冊是可以觸發屬性值變化的方法,同時也會省去某些麻煩的地方,
所以,我們就可以得到一個只讀的附加屬性和一個觸發源,
不過剩下后續觸發的問題就會很嚴重了,
假如: A類是附加屬性,之中只讀值為B型別,接受一個觸發源,并且B型別中也會有一個C型別,B型別會把反射事件的引數傳遞到C類中,
如此撰寫代碼,是可以運行,并且是可以觸發,不過,C類在XAML是沒有辦法寫系結的,
所以我們要變換一種方式,
在XAML有一個FreezableCollection集合是可以完美讓子元素使用系結,不過子元素是必須繼承Animatable類,
不過我們有了集合,雖然可以直接在集合的某個某個時刻進行設定反射,但是有些浪費,所以撰寫一個框架? 或者一個觀察者模式

截圖

更多 直接下載代碼吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/149.html
標籤:WPF
