我正在努力从VirtualMode
删除DataGridView
(它无法正常工作,我决定转而使用分页网格视图)并且一切正常。
只有一件事仍然缺失。我的数据集有enum
个,它们直接从数据库中查询,因此只有英文版本。我想在de DataGridView
中翻译这些数据。我可以调用一些处理程序来转换数据源中的数据吗?
(在VirtualMode
我实施了CellValueNeeded
,也处理了翻译;当虚拟模式关闭时,此事件不再被触发。)
答案 0 :(得分: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;
}
这仅显示列№2
的单元格中MyEnum值的翻译