WPF能綁定到我創建的泛型類嗎?可以wpf綁定到泛型類?
It is basically Class<T> where T:MyInterface
Can I Bind to Class<T> and use MyInterface to Bind It?
WPF能綁定到我創建的泛型類嗎?可以wpf綁定到泛型類?
It is basically Class<T> where T:MyInterface
Can I Bind to Class<T> and use MyInterface to Bind It?
WPF可以綁定到任何CLR對象(或通過CLR公開的COM對象),包括泛型類的實例。該對象可以選擇實現INotifyPropertyChanged或DependencyObject子類,以便綁定檢測其屬性的更改。如果沒有,則在評估綁定時,屬性值會被複制一次,但不會被更新。
從技術上講,WPF不會「綁定到類」:它綁定到一個對象,該對象是該類的一個實例。所以從字面上看,你的問題的答案是「不」,但我假設你問的是它是否可以綁定到一個泛型類的實例,在這種情況下答案是「是」。
對於泛型類,WPF的確存在限制:XAML解析器不能創建泛型類的實例或在{x:Type }
標記擴展中引用它們,因此對於大多數用於XAML的用途,您必須創建泛型類和引用的具體子類在你的XAML中。此例外是XAML中最外面的元素可以使用x:TypeArguments
屬性來指定泛型類。
當然,爲什麼不呢? Class<T>
只是一種類型。應該綁定得很好。
WPF可以綁定到CLR對象。被暴露的屬性應該支持通知(ala,INotifyPropertyChanged),或者應該是一個處理該類型的類型(ala,ObservableCollection)。
通過這些適當的對象應爲數據提供更好地服務。