2009-09-29 32 views
0

我正在創建一個簡單的應用程序,它只是用強類型的DataTable填充DataGridView。我的問題是,儘管包含數據,所有單元格都顯示爲空,但我有一個CellDoubleClick事件,它可以獲取單元格的基礎值(按預期鍵入),但列顯示爲空。DataGridView綁定到鍵入的數據表時顯示空單元格

INode類型的對象都有一個定義的ToString()方法,我的假設是DataGridView足夠智能,可以調用該方法顯示單元格內容但不顯示。

這是我目前的測試代碼:

 //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(); 

我怎樣才能得到顯示在細胞中的ToString()方法的價值時,我將DataTable綁定到DataGridView?

回答

1

dvwBrowser列正在使用不是基本.NET Framework數據類型和Byte []之一的用戶定義類型(INode)。 INode必須至少標記SerializableAttribute。你會發現更多的解釋here(在代碼示例之前的頁面底部)。

+0

感謝您的回答,我決定創建一個未綁定的DataGridView,並將ToString()的值粘貼到Grid中,那麼只需將DataTable作爲表單的成員變量並根據需要引用即可 – RobV 2009-10-01 10:10:13

相關問題