2011-01-19 152 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>