.net 支持行详细信息的DataGrid控件

.net 支持行详细信息的DataGrid控件,.net,winforms,data-binding,datagrid,.net,Winforms,Data Binding,Datagrid,我正在为.NET Windows窗体寻找一个免费/付费组件,让我们可视化(表格)一个包含各种类型数据的单一列表。我还想找到一种方法来定制任何内置的.NET组件来做同样的事情 我有一个由4种不同类型的数据组成的数据集,它们都实现了一个公共接口。我可以将DataGridView的数据源设置为接口对象的列表,这样就可以得到一个漂亮的统一网格。但是,我想做的是能够展开每一行以查看底层类的实际数据类型值 以下是一组数据示例: public interface ICommonData { long

我正在为.NET Windows窗体寻找一个免费/付费组件,让我们可视化(表格)一个包含各种类型数据的单一列表。我还想找到一种方法来定制任何内置的.NET组件来做同样的事情

我有一个由4种不同类型的数据组成的数据集,它们都实现了一个公共接口。我可以将DataGridView的数据源设置为接口对象的列表,这样就可以得到一个漂亮的统一网格。但是,我想做的是能够展开每一行以查看底层类的实际数据类型值

以下是一组数据示例:

public interface ICommonData {
    long ID {get;}
    DateTime Date {get;}
}

public class ClassA : ICommonData {
    public long ID {get;}
    public DateTime Date {get;}
    public string Description {get;set;}
    public string Title {get;set;}
}

public class ClassB : ICommonData {
    public long ID {get;}
    public DateTime Date {get;}
    public long SomeReferenceNumber {get;set;}
    public string SomeName {get;set;}
}
使用这些数据,我将网格绑定到一个包含ClassA和ClassB对象混合的列表。我需要的是能够展开任何行,并根据绑定到该行的数据类型查看包含ClassA或ClassB所有字段的记录

我知道我需要的是可以使用MicrosoftWPFdataGrid对象(带有RowDetailSelector),但是如果不需要的话,我宁愿不使用WPF。另一个重要的注意事项是,这些都是只读的。我不需要任何方式来编辑这些数据。我的用例是,我有一个连接到许多不同类型错误日志记录的库,我需要一种方法以一种表格格式可视化所有这些不同类型的错误记录(同时能够看到所有不同类型数据上的所有字段)


任何帮助都将不胜感激

我最终选择了Telerik的WinForms控件。他们的网格允许我使用选项卡式子模板完成上面所述的工作。

知道这个“混合物”应该是什么样子吗?一切都是表格吗?知道如何可视化哪些行是“ClassA”类型,哪些行是“ClassB”类型吗?对于表的主要行,它将是基于ICommonData属性的直表。当您展开一行时,理想情况下您会看到一个子表布局,其中一行显示实际ClassA或ClassB属性的所有列。或者至少给我一个面板,在那里我可以为数据设置我自己的格式。这就是WPF控件的工作方式。。。你只需要一个网格,你可以在里面放任何你喜欢的东西。