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

本文关键字:何时使 类型 实例 对象 DataSource 属性 设置 | 更新日期: 2023-09-27 18:18:27

问题

设置对象实例的[...].DataSource与类的类型有什么区别? 我已经在我们的代码库中看到了这两种方法的使用,我试图弄清楚为什么在任何这些情况下它都是这样或那样的。

如何

object1.DataSource = typeof(SomeClass);

不同于

object2.DataSource = getSomeObject();

进一步查询

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

我很难用Google搜索查询来措辞来回答这个问题。 这要么是因为这些东西很复杂,我只是措辞不正确,要么我不太了解 C# 中数据绑定的一些基础知识。 我可以在这里得到一些帮助来指向正确的方向吗? 谢谢!

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

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

因此,分配

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

如果分配基本类型,

则会获得基本类型项的空列表。数据绑定不"知道"任何派生类。

如果将

数据源设置为某种类型,则可以定义稍后将处理的类型。这将有助于将该对象的属性绑定到设计器中的元素。

稍后需要设置该值,以定义实际显示的数据。

编辑:而且,您只能访问正在处理的类上的属性,而不能访问任何父类。