设置对象的DataSource属性时,何时使用Type与实例?

Jak*_*ith 8 c# data-binding datasource bindingsource winforms

设置一个[...].DataSource对象的实例与一个类的类型有什么区别?我已经看到在我们的代码库中使用了这两种方法,并且我试图在这些情况下解决为什么它是这种或那种方式.

如何

object1.DataSource = typeof(SomeClass);
Run Code Online (Sandbox Code Playgroud)

与......不同

object2.DataSource = getSomeObject();
Run Code Online (Sandbox Code Playgroud)

进一步询问

另外,在第一种情况下,如果我将a设置DataSource为类的类型,那么如果该类是基类会发生什么?数据绑定是否适用于仅存在于从基类继承的类中的属性?或者数据绑定仅适用于我设置的类类型的类成员DataSource

我很难写出我的Google搜索查询,以便回答这个问题.这要么是因为这些东西很复杂,我只是没有正确的措辞,或者我不太了解C#中数据绑定的一些基本原理.我可以在这里找到正确方向的帮助吗?谢谢!

Mar*_*age 4

当您将BindingSource.DataSource属性设置为类型时,控件将绑定到IBindingList具有该类型元素的空元素。因此数据源最初没有项目。另一方面,如果您将 设为DataSource项目集合,则数据源将与这些项目绑定到IBindingList

因此,分配类型会为您提供一个空的项目列表,而分配集合则会为您提供一个包含集合中项目的列表。

如果分配基本类型,您将得到基本类型项的空列表。数据绑定不“了解”任何派生类。