【发布时间】:2015-12-18 00:38:52
【问题描述】:
我有一个绑定到“CarColor”对象列表的datagridview。我正在尝试向 dataGridView 添加一个额外的列,该列采用每个 CarColor 的 Name 属性并显示本地化版本。
目前我有一个扩展方法,可以创建列并使用正确的值填充它,但是每次 dataGridView 更改可见性或数据时,本地化名称列中的所有单元格都会变为空。在此之前,我通过在 dataGridView 的 VisibileChanged 和 DataSourceChanged 事件上运行扩展方法来管理解决方法。这很麻烦,尤其是当我试图影响另一个控件(例如对话框)中的 DataGridView 时。
我已经读过,通过设置新列的“表达式”值,可以选择使用 DataGrid。但是,我不知道是否可以将列表转换为 DataGrid,或者将 DataGridView 转换为 DataGrid。
如何确保本地化名称表的值不被删除?
【问题讨论】:
-
可能你的意思是
DataTable,而你误说DataGrid? -
如果您有
List<CarColor>,则不需要DataTable,只需向CarColor添加一个新属性,该属性返回其Name属性的本地化值。 -
如果您对答案有任何疑问或觉得它有帮助,请告诉我:)
-
我忘了在原始帖子中提到我无法编辑 CarColor 类,因为它已同步到数据库。我将尝试改用 ViewModel。
标签: c# winforms datagridview datagridviewcolumn