2011-01-19 158 views
1

這是我的設置。我也有以下的字典以下BusinessObject的類DataGrid綁定類型問題

BaseClass 
InheritClassA : BaseClass 
InheritClassB : BaseClass 
InheritClassC : BaseClass 

Dictionary<classType is a String, ObservableCollection<BaseClass>> 

我希望能在我的轉換器,對目標我選擇的類型的基礎上,返回正確的ObservableCollection所以我可以將它綁定到我的數據網格,並將autoGenerateColumn綁定到網格上,以便我可以查看網格上的所有屬性。

但是,當我只是檢索我的集合作爲BaseClass,它只顯示我的基類的列。我認爲這是因爲ObservableCollection的類型是baseClass的類型,而不是特定於InheritClassA/InheritClassB/InheritClassC

有沒有辦法動態創建ObservableCollection的類型?所以我可以創建ObservableCollection並將轉換後的值分配給它?

是否有一種合適的方式將其綁定到我的數據網格,以便我可以查看繼承類的屬性?

非常感謝,

回答

1

創建具有與價值型的Object,而不是一個BaseClass字典。然後您可以添加具體ObservableCollection<InheritClass[A,B,C]>和結合會像你期望:

Dictionary<classType is a String, ObservableCollection<object>> 

如果你想更嚴格,聲明爲Dictionary<string,IEnumerable>