【问题标题】:DataGrid binding Type issueDataGrid 绑定类型问题
【发布时间】:2011-06-12 02:41:57
【问题描述】:

这是我的设置。我有以下 BusinessObject 类

BaseClass
InheritClassA : BaseClass
InheritClassB : BaseClass
InheritClassC : BaseClass

我还有以下字典

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

我希望能够在我的转换器中,基于我选择的对象类型,返回正确的 ObservableCollection,以便我可以将其绑定到我的数据网格,并启用 autoGenerateColumn,以便我可以查看网格上的所有属性。

但是,当我将我的集合作为 BaseClass 检索回来时,它只显示基类的列。我认为这是因为 ObservableCollection 的类型是 baseClass 的类型,而不是特定于 InheritClassA/InheritClassB/InheritClassC

有没有办法动态创建 ObservableCollection 的类型?所以我可以创建 ObservableCollection 并将转换的值分配给它?

有没有合适的方法将它绑定到我的数据网格,以便我可以查看继承类的属性?

非常感谢,

【问题讨论】:

    标签: wpf data-binding datagrid types observablecollection


    【解决方案1】:

    创建一个值类型为Object 而不是BaseClass 的字典。然后你可以添加具体的ObservableCollection&lt;InheritClass[A,B,C]&gt;,绑定就会像你期望的那样工作:

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

    如果你想更严格,声明为Dictionary&lt;string,IEnumerable&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 2011-08-15
      • 1970-01-01
      • 2011-04-10
      相关资源
      最近更新 更多