0

我正在尝试在 C# 中创建一个可以绑定到 gridview 的对象。我有三个目标来实现这一目标。条目表、条目行和条目值。一个EntryTable 包含一个EntryRows 列表,一个EntryRow 包含一个EntryValues 列表。一个条目值对象由一个属性名称和一个值组成。

数据结构如下:

public class EntryTable 
{
    private List<EntryRow> _lERTable = null;
    ...

public class EntryRow
{
    private List<EntryValue> _lEVRow = null;
    ...

public class EntryValue
{
    private string _sFieldName;
    private string _sValue;
    ...

我知道默认情况下可绑定对象只会绑定到顶级可见属性。结果,我只看到一个 EntryRow 对象名称列表,如下所示:

-------------------------------------------
Norseman.CommandN.Data.CNStore.EntryRow    |
-------------------------------------------
Norseman.CommandN.Data.CNStore.EntryRow    |
------------------------------------------

我的最终目标是能够将填充的 EntryTable 绑定到网格并让 EntryTable 对象识别所有 EntryRows 中的所有属性名称并将数据显示为网格。问题是并非每个 EntryRow 都具有相同数量的 EntryValue。例如,如果我存储员工,则某些员工可能没有经理属性。

我希望像这样处理数据:

First Name |    Last Name  |     Position             |     Manager
-----------------------------------------------------------------
Andrew     |    Milton     |    Software Developer    |     null
-----------------------------------------------------------------
Barry      |   Singleton   |    Web Developer         |     Marcus Manicotti

我已经考虑将我的数据输入到传统的 System.Data.DataTable 模型中,但我更愿意实现自己的对象以避免开销。

在这件事上的任何帮助将不胜感激。

4

1 回答 1

1

如果您使用的是 WinForms,则可以在集合上实现ITypedList。如果您使用的是 WPF,则可以在每个项目上使用ICustomTypeDescriptor 。

于 2011-03-17T19:47:14.530 回答