2015-03-13 52 views
0

我正在從DataGridView中刪除VirtualMode(它無法正常工作,而我決定移動到分頁的網格視圖),所有工作都正常。在沒有虛擬模式的情況下在DataGridView中更改值

只有一件東西仍然缺失。我的數據集有enum,它們直接從數據庫中查詢,因此只有英文版本。我希望能夠在DataGridView中翻譯這些數據。是否有一些處理程序可以調用來轉換數據源中的數據?

(在VirtualMode我有CellValueNeeded實施,其處理的翻譯,以及;當虛擬模式是關閉的,這個事件不再被解僱)

+0

的細胞,你只想要顯示枚舉值或編輯它們嗎? – ASh 2015-03-13 13:38:38

+0

沒有編輯,只是查看。我使用對話框來編輯值。 – 2015-03-13 13:39:05

回答

2

我已經做了這樣的事情,在處理的dataGridView事件CellFormatting,在不改變基礎數據

private void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (e.ColumnIndex != 2) // enum value column 
     return; 

    var grid = (DataGridView)sender; 
    MyEnum val = (MyEnum)grid[e.ColumnIndex, e.RowIndex].Value; 
    switch (val) 
    { 
     case MyEnum.Val1: e.Value = "Translation1"; break; 
     case MyEnum.Val2: e.Value = "Translation2"; break; 
    } 

    e.FormattingApplied = true; 
} 

這隻能顯示MyEnum值的譯文№2列

+0

完美,作爲一種魅力。 – 2015-03-13 14:35:37

相關問題