【发布时间】:2009-08-03 15:23:53
【问题描述】:
很高兴看到人们在这里掌握了多少知识,这是一个地方的宝藏。 我见过自己为 DataGridView 事件编写代码 - 并将 DataSource 用于后端准备好的 DataTable 对象。
有时用户可以删除行、更新行等,而底层数据将需要再次验证检查。
假设我们有一个 person 类
class Person {
public string FirstName { get; set; }
}
假设代码的其他部分处理创建一个 Person 数组。
class Processor {
public static Person[] Create()
{
....
....
return person[];
}
}
并且此信息将出现在 DataGridView 上供用户查看。 我尝试过这样的事情:
public static DataTable ToTable(List<Person> list)
{ ... }
并且在 Person 类中有这个方法 .. 我认为它属于。然后我会将 DataGridView 绑定到该 DataTable,然后用户将看到该数据并执行他们的任务。
但是我已经考虑过使用 BindingList ,但我还没有受过这么多的教育。我是否仍然具有对 DataGridView 进行排序的能力,就像它使用 DataTable 作为数据源一样? BindingList 会由像“PersonCollection”这样的容器类实现,还是 Person 类会自行实现?我想触发一些事件,以便能够以干净的方式修改集合,而无需重置数据源等。用户体验可能会真正受到影响。
我知道修改DataSource DataTable 是个好方法。但有时我需要触发该特定行所引用的相应类中的方法,并且有一个 ugly 额外隐藏列,该列将包含对其他地方现有对象的引用(Person 引用)。
如果你们知道更好的设计解决方案,我会很高兴听到它。 提前致谢,
附言。读完《务实的程序员》,对代码的批判性思考就停不下来了!
狮子座 B.
【问题讨论】:
标签: c# user-interface