代码之家  ›  专栏  ›  技术社区  ›  RobV

当绑定到类型化数据表时,DataGridView显示空单元格

  •  0
  • RobV  · 技术社区  · 16 年前

    我正在创建一个简单的应用程序,它只是用强类型的数据表填充DataGridView。我的问题是,尽管包含数据,但所有单元格都显示为空,我有一个CellDoubleClick事件,它可以提取单元格的基础值(按预期键入),但列显示为空。

    inode类型的对象都定义了toString()方法,我的假设是,DataGridView足够智能,可以调用该方法any,显示为单元格内容,但似乎不是。

    这是我当前的测试代码:

            //Add some fake test data
            DataTable data = new DataTable();
            data.Columns.Add("Subject");
            data.Columns.Add("Predicate");
            data.Columns.Add("Object");
            data.Columns["Subject"].DataType = typeof(INode);
            data.Columns["Predicate"].DataType = typeof(INode);
            data.Columns["Object"].DataType = typeof(INode);
    
            Graph g = new Graph();
            DataRow row = data.NewRow();
            row["Subject"] = g.CreateURINode(new Uri("http://example.org/subject"));
            row["Predicate"] = g.CreateURINode(new Uri("http://example.org/predicate"));
            row["Object"] = g.CreateURINode(new Uri("http://example.org/object"));
            data.Rows.Add(row);
            this.dvwBrowser.DataSource = data;
            this.dvwBrowser.AutoResizeColumns();
    

    当我将数据表绑定到DataGridView时,如何获取要在单元格中显示的toString()方法的值?

    1 回复  |  直到 16 年前
        1
  •  1
  •   manji    16 年前

    dvwBrowser 列正在使用用户定义的类型( INode )不是基.NET Framework数据类型和byte[]之一。inode必须用 SerializableAttribute 至少。你会找到进一步的解释 here (在页面底部,代码示例之前。)

    推荐文章