Tee*_*tow 4 .net datagridview winforms
在操作DataGridView单元格时,通常会执行以下操作:
MyGrid.CurrentRow.Cells["EmployeeFirstName"].Value = "John";
Run Code Online (Sandbox Code Playgroud)
这一切都很好,花花公子,但随着复杂性的增加,你开始担心拼写错误,重构问题等.
从历史上看,我只是将列公开,所以我可以直接在类实例中访问它们,但是我必须与想要将它们保密的Windows Forms设计器进行斗争(据说这是一种很好的做法).
我目前的解决方案是有一个名为Cols的类,带有一串字符串:
public static class Cols
{
public static string EmployeeFirstName = "EmployeeFirstName";
...
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
MyGrid.CurrentRow.Cells[Cols.EmployeeFirstName].Value = "John";
Run Code Online (Sandbox Code Playgroud)
这给了我一些IntelliSense的好处,而不是等待运行时错误.尽管如此,它似乎仍然模糊不清.
有没有更方便的方法来做到这一点?
如果您在设计时创建了列,则可以为它们提供合理的名称,例如employeeFirstNameColumn.
然后你可以使用以下内容进入单元格:
MyGrid.CurrentRow.Columns[employeeFirstNameColumn.Name]
Run Code Online (Sandbox Code Playgroud)
或者可能:
MyGrid.CurrentRow.Columns[employeeFirstNameColumn.Index]
Run Code Online (Sandbox Code Playgroud)
如果您正在动态生成列(AutoGenerateColumns = true),那么您将拥有基于您绑定的数据源的列索引的列索引.因此,您可以使用类似的技巧来派生索引(特别是如果您的数据源是强类型的DataSet).
| 归档时间: |
|
| 查看次数: |
6978 次 |
| 最近记录: |