2009-02-13 351 views
0

我正在嘗試使用Windows窗體數據網格(.NET 1.1)來更新二維數組的元素。使用微軟文檔,我已經能夠得到datagrid正確顯示數組。將Windows窗體數據網格正確綁定到數組

編輯:我遵循的MS指令在http://support.microsoft.com/kb/315786

class myrow { 
    private int a, b; 
    public int A {get { return a; } set {a = value;}} 
    public int B {get { return b; } set {b = value;}} 
} 

myrow[] myRows = new myrow[5] { 
    new myrow(3,2), 
    new myrow(2,2), 
    new myrow(1,2), 
    new myrow(3,3), 
    new myrow(3,1), 
} 

myDataGrid.SetDataBinding(myRows, ""); 

我也得到了DataGrid的TableStyle.MappingName屬性設置爲"myrow[]"

讓我發瘋的是我無法更新它。我在窗體的單元格中輸入一個新的值,例如「1123」,然後按下Enter或Tab鍵,光標移動到下一個單元格,並且該值將變回原始值。

如何獲取更新?

回答

0

這不在我頭頂,但我認爲您需要實現一個事件,當您更改網格單元格或單擊更新按鈕時會被觸發。

+0

一直未能找到具有該信息的事件。可以獲取當前單元格選擇更改的事件,但是沒有發現任何事件會提供項目更改的事件。 CurrencyManager有一個ItemChanged事件,但似乎沒有觸發。 – davenpcj 2009-02-13 15:03:29

0

不幸的是,我不能檢查它的.NET 1.1,但對於.NET 2.0控制DataGridView取代DataGrid,它不需要手動更新數據源。

希望這會幫助你莫名其妙。

+0

*應該*自動更新,但不是。 – davenpcj 2009-02-13 14:57:09

0

有一個解決方法,如果您將數組更改爲ArrayList或其他集合類,則更新正常工作。

不是真正的答案,因爲它仍然沒有使用對象數組,並且仍然不適合使用常規的二維數據數組。

0

關閉我的頭頂,我認爲你需要... 升級到更新版本的Visual Studio。

+0

我通常更喜歡爲最廣泛的觀衆寫作。自從2008年10月份主流支持結束以來,你可能是對的。 MS繼續支持.Net 1.1,直到2015年7月。 但是在我寫這個問題的時候,1.1是我所有的,我不想爲2.0 SDK下載354MB。或者整個VS2005設置。 – davenpcj 2009-11-04 17:43:01

相關問題