我有一个Employee类(Id,Name,Age),只有很少的对象。我使用ListView控件显示“员工视图”表单中的所有记录,并允许用户添加/编辑/删除这些记录。并有单独的表单来添加新记录或编辑现有记录。 (没有数据库交互,只需要一个List来保存这些更改)
现在,我想支持这个设置(Employee View =>添加/编辑员工),其中包含可自定义的列数(默认情况下,根据我的Employee对象中的字段显示列)。因此,如果用户想要发送更多信息(例如,DoB),那么他应该能够在ListView中添加该列,并且添加/编辑员工表单应该为每个列显示一个适当的控件(例如DoB的示例DateTimePicker)添加/编辑所需的记录。
提前致谢。
答案 0 :(得分:0)
从内存中,标准的WinForms ListView控件不提供内置的数据绑定。我建议你最好在绑定模式下使用DataGridView。这将为您提供数据源中的字段自动显示为DataGridView中的列的功能。
DataGridView还提供行的内置编辑。此编辑在DataGridView本身中“就地”,因此对于某些类型的应用程序而言,这可能不是理想的。但是,您可以禁用就地编辑(使用ReadOnly和AllowUserToAddRows属性)并在需要时继续显示单独的添加/编辑表单。
在您的添加/编辑表单中,执行您要求的常用方法是根据数据源中的字段数动态添加控件。这涉及在代码中创建控件,设置位置和格式属性,然后将它们传递给Form.Controls.Add()。然后,您可以手动填充这些字段,也可以使用Simple Data Binding。